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
}