Junior — Middle
Эки тараптуу байланышкан тизмеге элемент кошуу операциясынын убакытттык татаалдыгын кантип аныктоо керек?
sobes.tech AI
AIден жооп
Ике тараптуу байланысқан тизмеге элемент кошуу операциясынын убакытталык кыйынчылыгы кошуу жайгашкан жерге ишара кылган көрсөткүч бар же жок экенине көз каранды:
- Эгер кошуу керек болгон түйүнгө карата көрсөткүч бар болсо, кошуу O(1) убакытта ишке ашат, анткени бир нече көрсөткүчтү гана өзгөртүү керек.
- Эгер биринчи орунду табыш керек болсо, издөө убактысы тизмектин өлчөмүнө көз каранды болот (O(n)), ал эми өзү кошуу — O(1).
Белгилүү бир түйүндөн кийин кошуу мисалы:
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
}