Junior — Middle
Milyen folyamatok történnek, amikor egy láncolt listával megvalósított verembe új elem kerül?
sobes.tech MI
Válasz az MI-től
Amikor egy új elemet adunk hozzá a veremhez, amelyet összekapcsolt listával valósítunk meg, a következő történik:
- Létrejön egy új csomópont (listaelem), amely tartalmazza a hozzáadni kívánt értéket.
- Az új csomópont mutatója beállításra kerül a verem jelenlegi felső elemére (azaz a kapcsolt lista fejére).
- A kapcsolt lista feje frissül, és mostantól az új csomópontot mutatja — ez lesz az új felső elem a veremben.
Így a push művelet időben O(1), mivel nem szükséges a lista áthaladása.
Kotlin példakód:
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
}
}