Junior — Middle
Оё таҷрибаи иҷро ва истифодаи рӯйхатҳои пайвастаро дар лоиҳаҳо доред?
sobes.tech AI
Ҷавоб аз AI
Бале, дар лоиҳаҳои Go одатан пайвастшавии рӯйхатҳои пайвасташударо амалӣ мекунанд ва истифода мебаранд, махсусан вақте ки идоракунии динамикии маҷмӯъҳо бо воридот ва хориҷкунии зуд лозим аст.
Дар китобхонаи стандартии Go, бастаи container/list мавҷуд аст, ки рӯйхати дуҷониба пайвасташударо амалӣ мекунад. Намунаи истифода:
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)
}
}
Агар хоҳед, ки рӯйхати пайвасташударо худатон амалӣ кунед, метавонед сохтори нод ва усулҳоро барои ворид кардан, хориҷ кардан ва убур кардан муайян кунед:
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
}
}
Инчунин, ин рӯйхати пайвасташударо бо роҳҳои гуногун идора кардан мумкин аст, аммо дар аксар ҳолатҳо, истифодаи container/list тайёр ва боэътимод беҳтар аст.