container包中有三个数据结构:heap(堆)、list(链表)、ring(环)
Package list
import "container/list"
list包实现了双向链表,要遍历一个链表:
for e := l.Front(); e != nil; e = e.Next() { // do something with e.Value }
type Element
Element代表的是链表节点
type Element struct { next, prev *Element // next, prev 分别指向下一个和上一个节点 list *List // list 为元素所在链表 Value interface{} // Value 为链表节点存储元素 }
Next和Prev方法
// Next 返回链表下一个元素或nil func (e *Element) Next() *Element { if p := e.next; e.list != nil && p != &e.list.root { return p } return nil } // Prev 返回链表上一个元素或nil func (e *Element) Prev() *Element { if p