воскресенье, 2 августа 2020 г.

Пакет list - двусвязный список в Golang

Пакет list реализует двусвязный список.

Чтобы перебрать список (где l - *List):

for e := l.Front(); e != nil; e = e.Next() {
    // делаем что-либо с e.Value
}

Пример двусвязного списка в Golang

package main

import (
    "container/list"
    "fmt"
)

func main() {
    // Создаем новый список 
    // и помещаем в него несколько чисел.
    l := list.New()
    e4 := l.PushBack(4)
    e1 := l.PushFront(1)
    l.InsertBefore(3, e4)
    l.InsertAfter(2, e1)    
    fmt.Printf("Длина списка %v\n", l.Len())

    fmt.Println("Итерируем по списку с начала.")
    for e := l.Front(); e != nil; e = e.Next() {
        fmt.Println(e.Value)
    }   

    fmt.Println("Итерируем по списку с конца.")
    for e := l.Back(); e != nil; e = e.Prev() {
        fmt.Println(e.Value)
    }

}

Вывод:

Длина списка 4
Итерируем по списку с начала.
1
2
3
4
Итерируем по списку с конца.
4
3
2
1


Читайте также:


Комментариев нет:

Отправить комментарий