Список пакетов
Обзор
Пакет list реализует двусвязный список.
Для перебора списка (где l - *List):
for e := l.Front(); e != nil; e = e.Next() {
// do something with e.Value
}
Пример
Код:
// Create a new list and put some numbers in it.
l := list.New()
e4 := l.PushBack(4)
e1 := l.PushFront(1)
l.InsertBefore(3, e4)
l.InsertAfter(2, e1)
// Iterate through list and print its contents.
for e := l.Front(); e != nil; e = e.Next() {
fmt.Println(e.Value)
}
Вывод:
1 2 3 4
Индекс
Примеры
Файлы пакета
list.go
тип Element
Element - элемент связанного списка.
type Element struct {
// The value stored with this element.
Value any
// contains filtered or unexported fields
}
функция (*Element) Next
func (e *Element) Next() *Element
Next возвращает следующий элемент списка или nil.
функция (*Element) Prev
func (e *Element) Prev() *Element
Prev возвращает предыдущий элемент списка или nil.
тип List
List представляет собой двусвязный список. Нулевое значение для List - это пустой список, готовый к использованию.
type List struct {
// contains filtered or unexported fields
}
функция New
func New() *List
New возвращает инициализированный список.
функция (*List) Back
func (l *List) Back() *Element
Back возвращает последний элемент списка l или nil, если список пуст.
функция (*List) Front
func (l *List) Front() *Element
Front возвращает первый элемент списка l или nil, если список пуст.
функция (*List) Init
func (l *List) Init() *List
Init инициализирует или очищает список l.
функция (*List) InsertAfter
func (l *List) InsertAfter(v any, mark *Element) *Element
InsertAfter вставляет новый элемент e со значением v сразу после mark и возвращает e. Если mark не является элементом l, список не изменяется. mark не должен быть nil.
функция (*List) InsertBefore
func (l *List) InsertBefore(v any, mark *Element) *Element
InsertBefore вставляет новый элемент e со значением v непосредственно перед mark и возвращает e. Если mark не является элементом l, список не изменяется. mark не должен быть nil.
функция (*List) Len
func (l *List) Len() int
Len возвращает количество элементов в списке l. Сложность - O(1).
функция (*List) MoveAfter 1.2
func (l *List) MoveAfter(e, mark *Element)
MoveAfter перемещает элемент e в новое положение после mark. Если e или mark не являются элементами l, или e == mark, список не изменяется. Элемент и mark не должны быть nil.
функция (*List) MoveBefore 1.2
func (l *List) MoveBefore(e, mark *Element)
MoveBefore перемещает элемент e в новое положение перед mark. Если e или mark не являются элементами l, или e == mark, список не изменяется. Элемент и mark не должны быть nil.
функция (*List) MoveToBack
func (l *List) MoveToBack(e *Element)
MoveToBack перемещает элемент e в конец списка l. Если e не является элементом l, список не изменяется. Элемент не должен быть nil.
функция (*List) MoveToFront
func (l *List) MoveToFront(e *Element)
MoveToFront перемещает элемент e в начало списка l. Если e не является элементом l, список не изменяется. Элемент не должен быть nil.
функция (*List) PushBack
func (l *List) PushBack(v any) *Element
PushBack вставляет новый элемент e со значением v в конец списка l и возвращает e.
функция (*List) PushBackList
func (l *List) PushBackList(other *List)
PushBackList вставляет копию другого списка в конец списка l. Список l и other могут быть одинаковыми. Они не должны быть nil.
функция (*List) PushFront
func (l *List) PushFront(v any) *Element
PushFront вставляет новый элемент e со значением v в начало списка l и возвращает e.
функция (*List) PushFrontList
func (l *List) PushFrontList(other *List)
PushFrontList вставляет копию другого списка в начало списка l. Список l и other могут быть одинаковыми. Они не должны быть nil.
функция (*List) Remove
func (l *List) Remove(e *Element) any
Remove удаляет e из l, если e является элементом списка l. Возвращает значение элемента e.Value. Элемент не должен быть nil.
© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/container/list/