РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
922 of 1593 menu

Метод list.List.InsertBefore

Метод InsertBefore структуры list.List вставляет новый элемент со значением v перед указанным элементом mark. Первым параметром метод принимает значение для вставки, вторым — указатель на элемент, перед которым нужно вставить новый элемент. Метод возвращает вставленный элемент типа *list.Element. Если указанный элемент не принадлежит списку, метод не выполняет операцию и возвращает nil.

Синтаксис

func (l *List) InsertBefore(v interface{}, mark *Element) *Element

Пример

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

package main import ( "container/list" "fmt" ) func main() { l := list.New() l.PushBack("a") mark := l.PushBack("b") l.PushBack("c") // Вставляем "x" перед "b" res := l.InsertBefore("x", mark) // Выводим весь список for e := l.Front(); e != nil; e = e.Next() { fmt.Println(e.Value) } fmt.Println("Inserted element:", res.Value) }

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

"a" "x" "b" "c" "Inserted element: x"

Пример

Давайте попробуем вставить элемент перед элементом, который не принадлежит списку. В этом случае метод вернет nil, и список не изменится:

package main import ( "container/list" "fmt" ) func main() { l := list.New() l.PushBack("a") l.PushBack("b") // Создаем элемент, не принадлежащий списку otherList := list.New() mark := otherList.PushBack("x") res := l.InsertBefore("z", mark) fmt.Println("Result:", res) fmt.Println("List length:", l.Len()) for e := l.Front(); e != nil; e = e.Next() { fmt.Println(e.Value) } }

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

"Result: <nil>" "List length: 2" "a" "b"

Пример

Давайте вставим элемент перед первым элементом списка. Для этого получим первый элемент с помощью метода Front:

package main import ( "container/list" "fmt" ) func main() { l := list.New() l.PushBack("a") l.PushBack("b") l.PushBack("c") // Получаем первый элемент first := l.Front() res := l.InsertBefore("start", first) for e := l.Front(); e != nil; e = e.Next() { fmt.Println(e.Value) } fmt.Println("Inserted element:", res.Value) }

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

"start" "a" "b" "c" "Inserted element: start"

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

  • метод list.List.InsertAfter,
    который вставляет элемент после указанного элемента
  • метод list.List.PushFront,
    который вставляет элемент в начало списка
  • метод list.List.PushBack,
    который вставляет элемент в конец списка
  • метод list.List.Remove,
    который удаляет указанный элемент из списка
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить