Struct algorithms_rs::queue::Queue
source · pub struct Queue<T> { /* private fields */ }
Expand description
Queue data structure
Implementations§
source§impl<T: Clone + Default> Queue<T>
impl<T: Clone + Default> Queue<T>
sourcepub fn new(length: usize) -> Self
pub fn new(length: usize) -> Self
Create an empty queue of fixed size
use algorithms_rs::Queue;
let empty_queue = Queue::<i32>::new(1);
assert_eq!(empty_queue.is_empty(), true);
sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Determine if queue is empty
use algorithms_rs::Queue;
let empty_queue = Queue::<i32>::new(1);
assert_eq!(empty_queue.is_empty(), true);
Examples found in repository?
src/queue.rs (line 101)
100 101 102 103 104 105 106 107 108 109 110 111
pub fn de_queue(&mut self) -> anyhow::Result<T> {
if self.is_empty() {
return Err(anyhow::anyhow!("underflow"));
}
let element = self.data.get(self.head);
if self.head == (self.len - 1) {
self.head = 0;
} else {
self.head += 1;
}
Ok(element.unwrap().clone())
}