Метод list.List.InsertAfter
Метод list.List.InsertAfter вставляет новый элемент со значением v
в список l после элемента mark. Первым параметром метод принимает
значение для вставки, вторым - элемент, после которого нужно выполнить вставку.
Метод возвращает вставленный элемент типа *list.Element.
Если mark не принадлежит списку l, метод не выполняет вставку.
Синтаксис
l.InsertAfter(v, mark)
Пример
Давайте создадим список из трех элементов и вставим новый элемент после второго элемента:
package 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)
}
}
Результат выполнения кода:
"Inserted element: x"
a
b
x
c
Пример
Давайте вставим новый элемент после последнего элемента списка:
package 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)
}
Результат выполнения кода:
1
2
3
4
"New element: 4"
Пример
Если попытаться вставить элемент после маркера, не принадлежащего списку, вставка не произойдет:
package 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)
}
}
Результат выполнения кода:
"Insert result: <nil>"
a
Смотрите также
-
метод
list.List.InsertBefore,
который вставляет элемент перед указанным -
метод
list.List.PushBack,
который добавляет элемент в конец списка -
метод
list.List.PushFront,
который добавляет элемент в начало списка -
метод
list.List.Remove,
который удаляет элемент из списка