Junior — Middle
Welke processen vinden plaats wanneer een nieuw element wordt toegevoegd aan een stack geïmplementeerd via een gekoppelde lijst?
sobes.tech AI
Antwoord van AI
Bij het toevoegen van een nieuw element aan de stapel, geïmplementeerd via een gekoppelde lijst, gebeurt het volgende:
- Er wordt een nieuwe knoop (lijstitem) gemaakt, waarin de waarde wordt opgeslagen die moet worden toegevoegd.
- De pointer van de nieuwe knoop wordt ingesteld op het huidige bovenste element van de stapel (dat wil zeggen, op de kop van de gekoppelde lijst).
- De kop van de gekoppelde lijst wordt bijgewerkt en wijst nu naar de nieuwe knoop — deze wordt het nieuwe bovenste element van de stapel.
Op deze manier wordt de push-operatie uitgevoerd in constante tijd O(1), omdat er geen lijst hoeft te worden doorlopen.
Voorbeeld 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
}
}