Struct LinkedList

Source
pub struct LinkedList<T> { /* private fields */ }
Expand description

A singly-linked list.

This structure represents a LinkedList where each node stores a value of type T and links to the next node in the sequence.

Implementations§

Source§

impl<T> LinkedList<T>

Source

pub fn new() -> Self

Creates a new and empty LinkedList.

§Examples
use dsa::data_structures::linked_list::LinkedList;
 
let list: LinkedList<i32> = LinkedList::new();
assert!(list.is_empty());
Source

pub fn push_front(&mut self, value: T)

Adds a value to the front of the LinkedList.

This method creates a new node containing the given value and makes it the new head of the list.

§Examples
use dsa::data_structures::linked_list::LinkedList;
 
let mut list = LinkedList::new();
list.push_front(10);
list.push_front(20);
assert!(!list.is_empty());
Source

pub fn pop_front(&mut self) -> Option<T>

Removes and returns the value from the front of the LinkedList.

If the list is empty, this method returns None. Otherwise, it removes the head node and returns its value.

§Returns

An Option<T> optional generic type based on whether the topmost node was popped from the list

  • Some node is returned if this LinkedList has a head, otherwise None
§Examples
use dsa::data_structures::linked_list::LinkedList;
 
let mut list = LinkedList::new();

list.push_front(10);
list.push_front(20);
assert_eq!(list.pop_front(), Some(20));
assert_eq!(list.pop_front(), Some(10));
assert!(list.is_empty());
Source

pub fn is_empty(&self) -> bool

Checks whether the LinkedList is empty.

§Returns

A bool, true or false, based on whether this LinkedList is empty

§Examples
use dsa::data_structures::linked_list::LinkedList;
 
let mut list = LinkedList::new();
assert!(list.is_empty());
list.push_front(10);
assert!(!list.is_empty());

Auto Trait Implementations§

§

impl<T> Freeze for LinkedList<T>

§

impl<T> RefUnwindSafe for LinkedList<T>
where T: RefUnwindSafe,

§

impl<T> Send for LinkedList<T>
where T: Send,

§

impl<T> Sync for LinkedList<T>
where T: Sync,

§

impl<T> Unpin for LinkedList<T>

§

impl<T> UnwindSafe for LinkedList<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.