ring
- ring为环结构,没有开始和结束
- 本质是双向链表
- 空ring的next和prev都指向自己
ring结构体
- Ring结构体包含三个参数
- next 指向当前节点的下一个节点
- prev 指向当前节点的上一个节点
- Value 当前节点的值
- New方法为创建一个包含n个元素的ring的方法
|
|
Ring结构体的方法
- init为初始一个0个节点的Ring结构体的方法
- Next返回当前节点的下一个节点
- Prev返回当前节点的上一个节点
- Move将当前节点移动n个位置
|
|
链接操作
- Link 将s和r链接到一起,返回r.next
- s和r在一个圆环里,操作会将r和s之间的元素移除到圆环
- s和r不在一个圆环里,操作会将r和s合并成一个圆环
- Unlink移除n%r.len个元素,本质上是对Link方法的封装
|
|
Len和Do方法
- Len方法返回圆环的长度
- Do方法的参数为一个函数f,对于圆环上的每个元素的值,执行该函数
|
|