Sobes.tech
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:

  1. Létrejön egy új csomópont (listaelem), amely tartalmazza a hozzáadni kívánt értéket.
  2. Az új csomópont mutatója beállításra kerül a verem jelenlegi felső elemére (azaz a kapcsolt lista fejére).
  3. 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
    }
}