Sobes.tech
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
}