#tree #collection #tree-node #key #lookup #cs #ftp

splay

Splay 树的本地实现。Splay 树是一种自平衡的二叉搜索树,它可以根据查找动态调整,以便频繁访问的模式具有比 log(n) 更好的查找时间。

8 个版本

使用旧的 Rust 2015

0.1.8 2015 年 10 月 6 日
0.1.7 2015 年 3 月 26 日
0.1.5 2015 年 2 月 20 日
0.1.3 2015 年 1 月 9 日
0.1.0 2014 年 11 月 13 日

2046数据结构

MIT 许可证

23KB
519

Splay 树

Build Status

文档

这是一个用 Rust 编写的 splay 树实现。这主要是一个概念验证工作,结果证明效果很好!

此存储库作为 Cargo 包提供,只需调整您的 Cargo.toml 以包含

[dependencies]
splay = "0.1"

此代码全部以 MIT 许可证发布。splaying 的实现主要基于 ftp://ftp.cs.cmu.edu/usr/ftp/usr/sleator/splaying/top-down-splay.c


lib.rs:

包含一个 splay 树的实现,其中每个节点都有一个键/值对,用于映射和集合。唯一的要求是键必须实现 Ord 特性。

示例

use splay::SplayMap;

let mut map = SplayMap::new();
map.insert("foo", "bar");
map.insert("hello", "world");
map.insert("splay", "tree");

for (k, v) in map.into_iter() {
    println!("{} => {}", k, v);
}

无运行时依赖