算法学习已经进入了一个新阶段,开始变得越来越难了。后面将会接触到各种各样的数据结构,这些数据结构大多是链式的。 链式的数据结构对于rust来说是个大坑,错综复杂的索引关系和Rust的内存安全机制八字不合。
今天就来个开胃菜,用链表实现桶。
需求分析
首先确定一下需要什么接口,先看看序列桶用到了哪些功能,我们实现链表桶就出一个对应的:
- 建造桶的集合还是用Vec实现,只是桶换成链表而已
- 不需要插入后再集中排序,而是插入时就插入指定的位置,所以需要一个
insert
方法 - 桶要像
Vec
一样能转成迭代器,只需要实现吃所有权的迭代器就行,引用迭代器不用实现