Junior — Middle
Quali processi avvengono quando un nuovo elemento viene aggiunto a uno stack implementato tramite una lista collegata?
sobes.tech AI
Risposta dell'AI
Quando si aggiunge un nuovo elemento allo stack, implementato tramite una lista collegata, accade quanto segue:
- Viene creato un nuovo nodo (elemento della lista), che contiene il valore da aggiungere.
- Il puntatore del nuovo nodo viene impostato sull'elemento superiore corrente dello stack (cioè sulla testa della lista collegata).
- La testa della lista collegata viene aggiornata e ora punta al nuovo nodo — che diventa il nuovo elemento superiore dello stack.
In questo modo, l'operazione push viene eseguita in tempo costante O(1), poiché non richiede di attraversare la lista.
Esempio in 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
}
}