Sobes.tech
Junior — Middle

Vai jums ir pieredze saistīto sarakstu īstenošanā un izmantošanā projektos?

sobes.tech AI

Atbilde no AI

Jā, projektos Go valodā bieži tiek īstenotas un izmantots saistītais saraksts, īpaši, ja ir nepieciešama dinamiska kolekciju pārvaldība ar biežām ievietošanu un dzēšanu.

Standarta bibliotēkā Go ir pakotne container/list, kas īsteno divvirzienu saistīto sarakstu. Piemērs:

package main

import (
    "container/list"
    "fmt"
)

func main() {
    l := list.New()

    l.PushBack(1)
    l.PushBack(2)
    l.PushFront(0)

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

Ja vēlaties pats īstenot saistīto sarakstu, varat definēt mezgla struktūru un metodes ievietošanai, dzēšanai un pārlūkošanai:

type Node struct {
    value int
    next  *Node
}

type LinkedList struct {
    head *Node
}

func (l *LinkedList) Insert(value int) {
    newNode := &Node{value: value}
    if l.head == nil {
        l.head = newNode
        return
    }
    current := l.head
    for current.next != nil {
        current = current.next
    }
    current.next = newNode
}

func (l *LinkedList) Traverse() {
    current := l.head
    for current != nil {
        fmt.Println(current.value)
        current = current.next
    }
}

Šis pieeja ļauj elastīgi pārvaldīt saraksta elementus, bet lielākajā daļā gadījumu ir labāk izmantot gatavo container/list.