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.