ring实现了环形链表的操作

type Ring

  1. type Ring struct {
  2. Value interface{} // 供调用者使用,本包不会操作该字段
  3. // 包含隐藏或非导出字段
  4. }

Ring类型代表环形链表的一个元素,同时也代表链表本身。环形链表没有头尾;指向环形链表任一元素的指针都可以作为整个环形链表看待。Ring零值是具有一个(Value字段为nil的)元素的链表。

func New(n int) Ring:创建一个具有n个元素的环形链表
func (r
Ring) Len() int:返回环形链表中的元素个数,复杂度O(n)
func (r Ring) Next() Ring:返回后一个元素,r不能为空
func (r Ring) Prev() Ring:返回前一个元素,r不能为空
func (r Ring) Move(n int) Ring:返回移动n个位置(n>=0向前移动,n<0向后移动)后的元素,r不能为空
func (r Ring) Link(s Ring) Ring:连接r和s,并返回r原本的后继元素r.Next()
func (r
Ring) Unlink(n int) *Ring

  • 删除链表中n % r.Len()个元素,从r.Next()开始删除。如果n % r.Len() == 0,不修改r。返回删除的元素构成的链表,r不能为空。

func (r *Ring) Do(f func(interface{})):对链表的每一个元素都执行f(正向顺序)