Junior — Middle
Yagona bog'langan ro'yxatning oxiriga yangi element qo'shishning vaqt murakkabligi qanday?
sobes.tech AI
AIdan javob
Yangi elementni oddiy bog'langan ro'yxatning oxiriga qo'shish vaqt murakkabligi ro'yxat oxiriga (qovurg'a) ishoratchi bor-yo'qligiga bog'liq.
- Agar qovurg'a ishoratkich bor bo'lsa, qo'shish O(1) da amalga oshiriladi, chunki to'g'ridan-to'g'ri oxirgi elementga murojaat qilish va yangi element qo'shish mumkin.
- Agar ishoratchi bo'lmasa, butun ro'yxat boshidan oxirigacha yurish kerak, bu O(n) vaqt oladi, bu yerda n ro'yxatdagi elementlar soni.
Qovurg'a ishoratkich bilan misol:
class Node {
var value: Int
var next: Node?
init(value: Int) {
self.value = value
}
}
class LinkedList {
var head: Node?
var tail: Node?
func append(_ value: Int) {
let newNode = Node(value: value)
if let tailNode = tail {
tailNode.next = newNode
} else {
head = newNode
}
tail = newNode
}
}
Bu yerda, qo'shish vaqt bo'yicha doimiy, ya'ni O(1).