Junior — Middle
Ce procese au loc atunci când un element nou este adăugat la o stivă implementată printr-o listă legată?
sobes.tech AI
Răspuns de la AI
Atunci când adăugați un element nou în stivă, implementată printr-o listă legată, se întâmplă următoarele:
- Se creează un nou nod (element al listei), care conține valoarea care trebuie adăugată.
- Punctatorul noului nod este setat pe elementul superior curent al stivei (adică pe capul listei legate).
- Capul listei legate este actualizat și acum indică către noul nod — acesta devine noul element superior al stivei.
Astfel, operația push se execută în timp constant O(1), deoarece nu necesită parcurgerea listei.
Exemplu în 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
}
}