Junior — Middle
Байланыштуу тизмеге негизделген стекке жаңы элемент кошулганда кандай процесстер болот?
sobes.tech AI
AIден жооп
Жаңы элементти стекке кошуу, ал байланышык тизмеге негизделген болсо, төмөнкүдөй болот:
- Жаңы түйүн (тизмедеги элемент) түзүлөт, ага кошулчу мааниси жайгаштырылат.
- Жаңы түйүндүн көрсөткүчү учурдагы эң жогорку элементке (яғни, байланышык тизмедеги башына) коюлат.
- Байланышык тизмедеги башкы көрсөтүү жаңыланып, азыр ал жаңы түйүнгө ишарат кылат — ал жаңы эң жогорку элементке айланат.
Мындайча айтканда, push операциясы O(1) убакытта ишке ашат, анткени тизмени өтүүгө муктаждык жок.
Kotlin мисалы:
class Node<T>(val value: T, var next: Node<T>? = null)
class Stack<T> {
private var head: Node<T>? = null
fun push(value: T) {
val newNode = Node(value)
newNode.next = head
head = newNode
}
fun pop(): T? {
val value = head?.value
head = head?.next
return value
}
}