Package list

import "container/list"
Overview
Index
Examples

Overview ▾

软件包列表实现了双向链接列表.

要遍历列表(其中l是* List):

for e := l.Front(); e != nil; e = e.Next() {
	// do something with e.Value
}

Example

1
2
3
4

type Element

元素是链接列表的元素.

type Element struct {

    // The value stored with this element.
    Value interface{}
    // contains filtered or unexported fields
}

func (*Element) Next

func (e *Element) Next() *Element

Next返回下一个列表元素或nil.

func (*Element) Prev

func (e *Element) Prev() *Element

Prev返回上一个列表元素或nil.

type List

列表表示双链表. List的零值是可以使用的空列表.

type List struct {
    // contains filtered or unexported fields
}

func New

func New() *List

New返回一个初始化列表.

func (*List) Back

func (l *List) Back() *Element

Back返回列表l的最后一个元素;如果列表为空,则返回nil.

func (*List) Front

func (l *List) Front() *Element

如果列表为空,则Front返回列表l的第一个元素或nil.

func (*List) Init

func (l *List) Init() *List

初始化初始化或清除列表l.

func (*List) InsertAfter

func (l *List) InsertAfter(v interface{}, mark *Element) *Element

InsertAfter在标记之后立即插入一个值为v的新元素e并返回e. 如果mark不是l的元素,则不修改列表. 商标不能为零.

func (*List) InsertBefore

func (l *List) InsertBefore(v interface{}, mark *Element) *Element

InsertBefore在标记之前插入一个值为v的新元素e并返回e. 如果mark不是l的元素,则不修改列表. 商标不能为零.

func (*List) Len

func (l *List) Len() int

Len返回列表l的元素数. 复杂度为O(1).

func (*List) MoveAfter 1.2

func (l *List) MoveAfter(e, mark *Element)

MoveAfter将元素e移到标记之后的新位置. 如果e或mark不是l的元素,或者e == mark,则不修改列表. 元素和标记不得为零.

func (*List) MoveBefore 1.2

func (l *List) MoveBefore(e, mark *Element)

MoveBefore将元素e移到标记之前的新位置. 如果e或mark不是l的元素,或者e == mark,则不修改列表. 元素和标记不得为零.

func (*List) MoveToBack

func (l *List) MoveToBack(e *Element)

MoveToBack将元素e移动到列表l的后面. 如果e不是l的元素,则不修改列表. 元素不能为nil.

func (*List) MoveToFront

func (l *List) MoveToFront(e *Element)

MoveToFront将元素e移动到列表l的前面. 如果e不是l的元素,则不修改列表. 元素不能为nil.

func (*List) PushBack

func (l *List) PushBack(v interface{}) *Element

PushBack在列表l的后面插入一个值为v的新元素e并返回e.

func (*List) PushBackList

func (l *List) PushBackList(other *List)

PushBackList在列表l的后面插入另一个列表的副本. 列表l和其他列表可以相同. 他们一定不能为零.

func (*List) PushFront

func (l *List) PushFront(v interface{}) *Element

PushFront在列表l的开头插入一个值为v的新元素e并返回e.

func (*List) PushFrontList

func (l *List) PushFrontList(other *List)

PushFrontList在列表l的开头插入另一个列表的副本. 列表l和其他列表可以相同. 他们一定不能为零.

func (*List) Remove

func (l *List) Remove(e *Element) interface{}

如果e是列表l的元素,则Remove从l中删除e. 它返回元素值e.Value. 元素不能为nil.

by  ICOPY.SITE