import "container/list"

2重リンクリストを実装しています。

リストをイテレートするには、次のようにします。(lが、*Listのとき)

for e := l.Front(); e != nil; e = e.Next() {
	// e.Valueを使って何かする
}

パッケージファイル

list.go

Element型

Elementは、リンクリストの要素です。

type Element struct {

    // The contents of this list element.
    Value interface{}
    // contains unexported fields
}

(*Element) Next関数

func (e *Element) Next() *Element

Nextは、次の要素またはnilを返します。

(*Element) Prev関数

func (e *Element) Prev() *Element

Prevは、前の要素またはnilを返します。

List型

2重リンクリストを表現しています。Listのゼロ値は、使用準備の整った空のリストです。

type List struct {
    // contains unexported fields
}

New関数

func New() *List

Newは、初期化済みのリストを返します。

(*List) Back関数

func (l *List) Back() *Element

Back は、リスト内の最後の要素を返します。

(*List) Front関数

func (l *List) Front() *Element

Frontは、リスト内の先頭の要素を返します。

(*List) Init関数

func (l *List) Init() *List

Initは、リストを初期化またはクリアします。

(*List) InsertAfter関数

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

InsertAfterは、valueの値を持つ要素をmarkの直後に挿入し、戻り値として返します。

(*List) InsertBefore関数

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

InsertBeforeは、valueの値を持つ要素をmarkの直前に挿入し、戻り値として返します。

(*List) Len関数

func (l *List) Len() int

Lenは、リスト内の要素数を返します。

(*List) MoveToBack関数

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

MoveToBackは、要素をリストの最後に移動します。

(*List) MoveToFront関数

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

MoveToFrontは、要素をリストの先頭に移動します。

(*List) PushBack関数

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

PushBackは、valueの値を持つ要素をリストの最後に挿入し、戻り値として返します。

(*List) PushBackList関数

func (l *List) PushBackList(ol *List)

PushBackListは、ol内の各要素をリストの最後に挿入します。

(*List) PushFront関数

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

PushFrontは、valueの値を持つ要素をリストの先頭に挿入し、戻り値として返します。

(*List) PushFrontList関数

func (l *List) PushFrontList(ol *List)

PushFrontListは、 ol内の各要素をリストの先頭に挿入します。パラメータで渡されたリストの順番は保たれます。

(*List) Remove関数

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

Removeは、リストから要素を削除し、削除した値を返します。