D
Size: a a a
D
CD
struct node {
node * next; //not null
node * prev; //not null
};
ΑZ
struct node {
node * next; //not null
node * prev; //not null
};
struct Node {
Option<NotNull<Node>> next;
Option<NotNull<Node>> prev;
}
CD
struct Node {
Option<NotNull<Node>> next;
Option<NotNull<Node>> prev;
}
ΑZ
ΑZ
CD
struct list {
node head;
list() : head{ &head, &head } ()
};
CD
D
CD
D
fn attach(&mut self, node: *mut Node<K, V>) {
unsafe {
(*node).next = (*self.head).next;
(*node).prev = self.head;
(*self.head).next = node;
(*(*node).next).prev = node;
}
}
CD
fn attach(&mut self, node: *mut Node<K, V>) {
unsafe {
(*node).next = (*self.head).next;
(*node).prev = self.head;
(*self.head).next = node;
(*(*node).next).prev = node;
}
}
ΑZ
CD
ΑZ
ΑZ
CD
CD