complete push

This commit is contained in:
Sander Hautvast 2022-01-26 19:03:30 +01:00
parent 41db07a8a3
commit 95998d4a95

View file

@ -1,22 +1,23 @@
fn main() { fn main() {}
}
#[derive(Debug)]
pub struct List { pub struct List {
head: Link head: Link,
} }
enum Link{ #[derive(Debug)]
enum Link {
Empty, Empty,
More(Box<Node>), More(Box<Node>),
} }
#[derive(Debug)]
struct Node { struct Node {
elem: i32, elem: i32,
next: Link, next: Link,
} }
impl List{ impl List {
pub fn new() -> Self { pub fn new() -> Self {
Self { head: Link::Empty } Self { head: Link::Empty }
} }
@ -24,9 +25,10 @@ impl List{
pub fn push(&mut self, elem: i32) { pub fn push(&mut self, elem: i32) {
let new_node = Node { let new_node = Node {
elem: elem, elem: elem,
next: std::mem::replace(&mut self.head, Link::Empty) next: std::mem::replace(&mut self.head, Link::Empty),
}; };
self.head = Link::More(Box::new(new_node));
} }
} }