Метод list.List.InsertAfter

Метод list.List.InsertAfter вставляет новый элемент со значением v в список l после элемента mark. Первым параметром метод принимает значение для вставки, вторым - элемент, после которого нужно выполнить вставку. Метод возвращает вставленный элемент типа *list.Element. Если mark не принадлежит списку l, метод не выполняет вставку.

Синтаксис

gol.InsertAfter(v, mark)

Пример

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

gopackage main

import (
  "container/list"
  "fmt"
)

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

  newElement := l.InsertAfter("x", mark)
  fmt.Println("Inserted element:", newElement.Value)

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

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

go"Inserted element: x"
a
b
x
c

Пример

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

gopackage main

import (
  "container/list"
  "fmt"
)

func main() {
  l := list.New()
  l.PushBack(1)
  l.PushBack(2)
  last := l.PushBack(3)

  newElement := l.InsertAfter(4, last)

  for e := l.Front(); e != nil; e = e.Next() {
    fmt.Println(e.Value)
  }
  fmt.Println("New element:", newElement.Value)
}

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

go1
2
3
4
"New element: 4"

Пример

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

gopackage main

import (
  "container/list"
  "fmt"
)

func main() {
  l1 := list.New()
  l1.PushBack("a")

  l2 := list.New()
  mark := l2.PushBack("b")

  res := l1.InsertAfter("x", mark)
  fmt.Println("Insert result:", res)

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

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

go"Insert result: <nil>"
a

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

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