< 返回版块

andelf 发表于 2020-06-12 13:41

Tags:data structure,tree,algorithm

一个五年前的项目. 昨天有小伙伴提起说红黑树面试, 恰好把当年的库整出来修复下编译错误.

猜猜五年老项目需要修复什么东西才能过编译?

  • feature(plugin) 不需要引入了. 是唯一一个编译错误, 其他都是 warning
  • rand 更新版本, 去掉了 Rand, 使用方法改变改为 impl Distribution<T> for Standard
    • gen_weighted_bool 改为 gen_ratio
  • try! 宏编译 warning, 用 foo? 语法替代
  • SipHasher deprecated,改 DefaultHasher
  • 更新 vec_map 版本号, 无代码修改
  • 使用 rust edition 2018, 去掉 extern crate 语句

如上, 如果不更新依赖的话, 几乎不需要修改, 还能通过编译. 感叹的确是 1.0 后时代. 记得当年 slice_to 漫天飞的时代, 一气之下弃坑了. 直到 Index 稳定下来.

大概有如下数据结构实现:

Bag
Stack
Queue
Deque
PriorityQueue
HashSearchTable
Tries
SuffixTree
SplayTree
Rope
SkipList
RedBlackTree
KdTree
UnionFind

其中部分数据结构有简单的可视化, 比较直观, 适合教学.

大部分数据结构都不是最优实现. 做概念展示用.


Ext Link: https://github.com/andelf/rust-adivon

评论区

写评论
whfuyn 2020-06-12 16:29

赞啊!我也想写一个

Mike Tang 2020-06-12 13:48

666

1 共 2 条评论, 1 页