Junior — Middle
Aké procesy prebiehajú, keď sa do zásobníka implementovaného pomocou prepojenej zoznamu pridá nový prvok?
sobes.tech AI
Odpoveď od AI
Pri pridávaní nového prvku do zásobníka, implementovaného pomocou prepojenej zoznamu, sa deje nasledovné:
- Vytvorí sa nový uzol (prvok zoznamu), ktorý obsahuje hodnotu, ktorú je potrebné pridať.
- Ukazovateľ nového uzla sa nastaví na aktuálny horný prvok zásobníka (teda na hlavu prepojeného zoznamu).
- Hlava prepojeného zoznamu sa aktualizuje a teraz ukazuje na nový uzol — ten sa stáva novým horným prvkom zásobníka.
Týmto spôsobom je operácia push vykonaná v konštantnom čase O(1), pretože nevyžaduje prechádzanie zoznamom.
Príklad v 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
}
}