list

package
v1.26.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 16, 2026 License: MIT Imports: 0 Imported by: 0

Documentation

Overview

パッケージlistは双方向連結リストを実装します。

リストを反復するには(l は *List):

for e := l.Front(); e != nil; e = e.Next() {
	// e.Value を使って何らかの処理を行う
}
Example
package main

import (
	"github.com/shogo82148/std/container/list"
	"github.com/shogo82148/std/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)
	}

}
Output:
1
2
3
4

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Element

type Element struct {

	// この要素に格納される値です。
	Value any
	// contains filtered or unexported fields
}

Elementは連結リストの要素です。

func (*Element) Next

func (e *Element) Next() *Element

Nextは次のリスト要素を返します。なければnilを返します。

func (*Element) Prev

func (e *Element) Prev() *Element

Prevは前のリスト要素を返します。なければnilを返します。

type List

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

Listは双方向連結リストを表します。 Listのゼロ値は、すぐに使用可能な空のリストです。

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

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

func (*List) InsertAfter

func (l *List) InsertAfter(v any, mark *Element) *Element

InsertAfterは値vを持つ新しい要素eを mark の直後に挿入し、eを返します。 markが l の要素でない場合、リストは変更されません。 markはnilであってはなりません。

func (*List) InsertBefore

func (l *List) InsertBefore(v any, mark *Element) *Element

InsertBeforeは値vを持つ新しい要素eを mark の直前に挿入し、eを返します。 markが l の要素でない場合、リストは変更されません。 markはnilであってはなりません。

func (*List) Len

func (l *List) Len() int

Lenはリストlの要素数を返します。 計算量は O(1) です。

func (*List) MoveAfter added in v1.2.0

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

MoveAfterは要素eを mark の後の新しい位置へ移動します。 e または mark が l の要素でない場合、または e == mark の場合、 リストは変更されません。 要素と mark はnilであってはなりません。

func (*List) MoveBefore added in v1.2.0

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

MoveBeforeは要素eを mark の前の新しい位置へ移動します。 e または mark が l の要素でない場合、または e == mark の場合、 リストは変更されません。 要素と mark はnilであってはなりません。

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 any) *Element

PushBackは値vを持つ新しい要素eをリストlの末尾に挿入し、eを返します。

func (*List) PushBackList

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

PushBackListは別のリストのコピーをリストlの末尾に挿入します。 リスト l と other は同一でも構いません。nilであってはなりません。

func (*List) PushFront

func (l *List) PushFront(v any) *Element

PushFrontは値vを持つ新しい要素eをリストlの先頭に挿入し、eを返します。

func (*List) PushFrontList

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

PushFrontListは別のリストのコピーをリストlの先頭に挿入します。 リスト l と other は同一でも構いません。nilであってはなりません。

func (*List) Remove

func (l *List) Remove(e *Element) any

Removeは、eがリストlの要素であれば l から e を削除します。 要素の値 e.Value を返します。 要素はnilであってはなりません。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL