实践 Rust 之用 Rust 实现常见的数据结构

前言

数据结构是计算机软件领域的基石之一,是每个学习编程的人都应该接触的。现在常见的很多数据结构其实在当初都是伟大的“发明”。
数据结构的实现也非常适合作为将一门语言从学习阶段到实用阶段的过渡。下面我会贴出一些常见的数据结构在 Rust 语言中的实现。

最简版本(利用内置的动态数组 Vec):

struct Stack {
    data: Vec<i32>,
}
impl Stack {
    fn new() -> Stack {
        Stack { data: Vec::new() }
    }

    fn push(&mut self, val: i32) {
        self.data.push(val);
    }

    fn pop(&mut self) -> i32 {
        let len = self.data.len();
        if len == 0 {
            panic!("Stack is empty");
        }
        self.data.remove(len - 1)
    }
}

fn main() {
    let mut s1 = Stack::new();
    s1.push(1);
    s1.push(2);
    println!("{}", s1.pop()); // 2
    println!("{}", s1.pop()); // 1
    println!("{}", s1.pop()); // thread 'main' panicked at 'Stack is empty'
}

待更新。