©
本文档使用 PHP中文网手册 发布
import "container/list"
概况
索引
例子
软件包列表实现双向链接列表。
遍历一个列表(其中 l 是 *List):
for e := l.Front(); e != nil; e = e.Next() {// 用e.Value做些事情}
package mainimport ("container/list""fmt")func main() {// 创建一个新列表并在其中添加一些数字。 l := list.New() e4 := l.PushBack(4) e1 := l.PushFront(1) l.InsertBefore(3, e4) l.InsertAfter(2, e1)// 遍历列表并打印其内容。for e := l.Front(); e != nil; e = e.Next() { fmt.Println(e.Value)}}
type Element
func (e *Element) Next() *Element
func (e *Element) Prev() *Element
type List
func New() *List
func (l *List) Back() *Element
func (l *List) Front() *Element
func (l *List) Init() *List
func (l *List) InsertAfter(v interface{}, mark *Element) *Element
func (l *List) InsertBefore(v interface{}, mark *Element) *Element
func (l *List) Len() int
func (l *List) MoveAfter(e, mark *Element)
func (l *List) MoveBefore(e, mark *Element)
func (l *List) MoveToBack(e *Element)
func (l *List) MoveToFront(e *Element)
func (l *List) PushBack(v interface{}) *Element
func (l *List) PushBackList(other *List)
func (l *List) PushFront(v interface{}) *Element
func (l *List) PushFrontList(other *List)
func (l *List) Remove(e *Element) interface{}
包文件
list.go
元素是链接列表的元素。
type Element struct { // 与此元素一起存储的值。 Value interface{} // 包含过滤或未导出的字段}
func (e *Element) Next() *Element
接下来返回下一个列表元素或 nil 。
func (e *Element) Prev() *Element
Prev 返回前一个列表元素或 nil 。
列表代表一个双向链表。列表的零值是准备使用的空列表。
type List struct { // 包含过滤或未导出的字段}
func New() *List
重新返回一个初始化列表。
func (l *List) Back() *Element
返回列表 l 或 nil 的最后一个元素。
func (l *List) Front() *Element
Front 返回列表 l 或 nil 的第一个元素。
func (l *List) Init() *List
Init 初始化或清除列表 l 。
func (l *List) InsertAfter(v interface{}, mark *Element) *Element
InsertAfter 在标记后立即插入具有值 v 的新元素 e 并返回 e。如果标记不是 l 的元素,则列表不会被修改。
func (l *List) InsertBefore(v interface{}, mark *Element) *Element
InsertBefore 在标记之前立即插入一个具有值 v 的新元素 e 并返回 e 。如果标记不是 l 的元素,则列表不会被修改。
func (l *List) Len() int
Len 返回列表 l 的元素数量。复杂性是 O(1)。
func (l *List) MoveAfter(e, mark *Element)
MoveAfter 将元素 e 移动到标记后的新位置。如果 e 或标记不是 l 或 e ==标记的元素,则列表不会被修改。
func (l *List) MoveBefore(e, mark *Element)
MoveBefore 在标记之前将元素 e 移动到新的位置。如果 e 或标记不是 l 或 e ==标记的元素,则列表不会被修改。
func (l *List) MoveToBack(e *Element)
MoveToBack 将元素 e 移动到列表l的后面。如果 e 不是 l 的元素,则列表不会被修改。
func (l *List) MoveToFront(e *Element)
MoveToFront 将元素 e 移动到列表l的前面。如果 e 不是 l 的元素,则列表不会被修改。
func (l *List) PushBack(v interface{}) *Element
PushBack 在列表 l 的后面插入一个新值 e 的元素 e 并返回 e 。
func (l *List) PushBackList(other *List)
PushBackList 在列表 l 的后面插入其他列表的副本。列表 l 和其他可能是相同的。
func (l *List) PushFront(v interface{}) *Element
PushFront 在列表 l 的前面插入一个新的元素 e,其值为 v,并返回 e 。
func (l *List) PushFrontList(other *List)
PushFrontList 在列表 l 的前面插入其他列表的副本。列表 l 和其他可能是相同的。
func (l *List) Remove(e *Element) interface{}
如果 e 是列表 l 的一个元素,则删除从 e 删除 e 。它返回元素值 e.Value 。