Метод list.List.PushFront

Метод PushFront добавляет новый элемент в начало списка. Он принимает один параметр - значение произвольного типа, которое будет сохранено в новом элементе. Метод возвращает указатель на созданный элемент типа *list.Element, что позволяет работать с этим элементом дальше (например, перемещать его или удалять).

Синтаксис

goelement := list.PushFront(value)

Пример

Давайте создадим новый список и добавим в него один элемент в начало:

gopackage main

import (
  "container/list"
  "fmt"
)

func main() {
  l := list.New()
  element := l.PushFront("first")
  fmt.Println(element.Value)
}

Результат выполнения кода:

go"first"

Пример

Давайте добавим несколько элементов в начало списка и посмотрим на их порядок:

gopackage main

import (
  "container/list"
  "fmt"
)

func main() {
  l := list.New()
  l.PushFront("a")
  l.PushFront("b")
  l.PushFront("c")

  for e := l.Front(); e != nil; e = e.Next() {
    fmt.Println(e.Value)
  }
}

Результат выполнения кода:

go"c"
"b"
"a"

Как видите, элементы выводятся в порядке, обратном их добавлению.

Пример

Метод возвращает указатель на элемент, который можно использовать для дальнейших операций:

gopackage main

import (
  "container/list"
  "fmt"
)

func main() {
  l := list.New()
  e1 := l.PushFront(1)
  e2 := l.PushFront(2)

  // Move e1 before e2
  l.MoveBefore(e1, e2)

  for e := l.Front(); e != nil; e = e.Next() {
    fmt.Println(e.Value)
  }
}

Результат выполнения кода:

go1
2

Смотрите также

  • функцию list.New,
    которая создает новый двусвязный список
  • метод List.PushBack,
    который добавляет элемент в конец списка
  • метод List.InsertBefore,
    который вставляет элемент перед указанным
  • метод List.Remove,
    который удаляет элемент из списка