Junior — Middle
Ikki tomonlama bog'langan ro'yxatga element qo'shish operatsiyasining vaqt murakkabligi qanday aniqlanadi?
sobes.tech AI
AIdan javob
Ikki tomonlama bog'langan ro'yxatga element qo'shish operatsiyasining vaqt murakkabligi, bizda joylashuvga ko'rsatkich bor yoki yo'qligiga bog'liq:
- Agar qo'shish uchun joylashuvdagi tugunga ko'rsatkich bo'lsa, qo'shish O(1) da amalga oshadi, chunki faqat bir nechta ko'rsatkichlarni o'zgartirish kerak.
- Agar avval joylashuvni topish kerak bo'lsa, qidiruv vaqti ro'yxatning o'lchamiga bog'liq bo'ladi (O(n)), va o'zi qo'shish esa O(1).
Berilgan tugundan keyin qo'shish misoli:
type Node struct {
value int
prev *Node
next *Node
}
func insertAfter(node *Node, newNode *Node) {
newNode.prev = node
newNode.next = node.next
if node.next != nil {
node.next.prev = newNode
}
node.next = newNode
}