Junior — Middle
Loyihalarda bog'langan ro'yxatlarni amalga oshirish va foydalanish bo'yicha tajribangiz bormi?
sobes.tech AI
AIdan javob
Ha, Go loyihalarida ko‘pincha bog‘langan ro‘yxatlar amalga oshiriladi va ishlatiladi, ayniqsa, dinamik boshqaruv talab qilinsa, ko‘p joylashtirish va o‘chirishlar bilan.
Go ning standart kutubxonasida container/list paket mavjud bo‘lib, u ikki tomonlama bog‘langan ro‘yxatni amalga oshiradi. Foydalanish misoli:
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)
}
}
Agar siz o‘zingiz bog‘langan ro‘yxatni mustaqil ravishda amalga oshirmoqchi bo‘lsangiz, tugun tuzilmasi va joylashtirish, o‘chirish va yurish uchun metodlarni aniqlashingiz mumkin:
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
}
}
Bu yondashuv ro‘yxat elementlarini moslashuvchan boshqarish imkonini beradi, ammo ko‘p hollarda tayyor container/list dan foydalanish qulayroq va ishonchliroq bo‘ladi.