Junior — Middle
Çift bağlı listenin içine bir öğe ekleme işleminin zaman karmaşıklığı nasıl belirlenir?
sobes.tech yapay zeka
AI'dan gelen yanıt
İkili bağlı listenin bir öğesinin eklenme işleminin zaman karmaşıklığı, ekleme konumuna işaret eden bir göstergeye sahip olup olmamıza bağlıdır:
- Eğer ekleme yapılacak düğümden sonra gelen düğüme işaret eden bir gösterge zaten varsa, ekleme O(1) sürede gerçekleşir, çünkü sadece birkaç göstergeyi değiştirmek yeterlidir.
- Eğer önce ekleme konumunu bulmamız gerekiyorsa, arama süresi listenin boyutuna bağlıdır (O(n)), ve ekleme kendisi O(1) olur.
Belirli bir düğümden sonra ekleme örneği:
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
}