視訊地址:www.bilibili.com/video/av78062009/
相關原始碼:github.com/anonymousGiga/Rust-link...
在上一節,我們基本確定了連結串列的佈局方式,下面我們就來實現連結串列的響應的函式。
對於連結串列來說,最基本的幾個函式就是:
New //new函式為建立連結串列的函式
Push//新增元素的函式
Pop //彈出元素的函式
實現如下:
impl List {
pub fn new() -> Self {
List { head: Link::Empty }
}
}
實現如下:
impl List {
pub fn push(&mut self, elem: i32) {
let node = Box::new(Node {
elem: elem,
next: mem::replace(&mut self.head, Link::Empty),
});
self.head = Link::More(node);
}
}
和Push函式不一樣,Pop函式需要考慮當連結串列為空時的情況,所以我們考慮Pop函式的返回值使用Option。實現程式碼如下:
impl List {
pub fn pop(&mut self) -> Option<i32> {
match mem::replace(&mut self.head, Link::Empty) {
Link::Empty => None,
Link::More(node) => {
self.head = node.next;
Some(node.elem)
}
}
}
}
至此,我們把連結串列的幾個基本函式都寫完了!
本作品採用《CC 協議》,轉載必須註明作者和本文連結