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
}