#skip-list #sorting #collection

skiplist-rs

跳表是一种有序映射,可以存储任何值。有关此数据结构的更多信息,请参阅跳表维基百科页面。

6 个版本

0.1.5 2022 年 1 月 1 日
0.1.4 2021 年 4 月 17 日
0.1.3 2020 年 4 月 21 日

#836 in 数据结构

每月 22 次下载

MIT 许可证

19KB
444 代码行

skiplist-rs

描述

跳表是一种有序映射,可以存储任何值。有关此数据结构的更多信息,请参阅跳表维基百科页面。

如何使用

fn main() {
    let mut list = Skiplist::new();
    list.set(10, "helloworld".to_string());
    if let Some(t) = list.get(&10) {
        println!("{}", t);
    }
    list.remove(&10);
    if let Some(t) = list.get(&10) {
        println!("{}", t);
    } else {
        println!("not found");
    }
}
#[test]
fn test_iterator() {
    let mut rng = rand::thread_rng();
    let y: f64 = rng.gen();
    let mut nums: Vec<u32> = (1..200).collect();
    nums.shuffle(&mut rng);

    let mut skiplist = Skiplist::new();
    for i in nums {
        println!("index is {}", i);
        skiplist.set(i, format!("Helloworld_{}", i));
    }

    for v in &mut skiplist {
        println!("{}", v.as_str());
    }

    skiplist.set(9999, "Helloworld_9999".to_string());

    for v in &mut skiplist {
        println!("{}", v.as_str());
    }

}

许可证

本库采用 MIT 许可证。有关详细信息,请参阅 LICENSE。

依赖关系

~305KB