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

  1. Se creează un nou nod (element al listei), care conține valoarea care trebuie adăugată.
  2. Punctatorul noului nod este setat pe elementul superior curent al stivei (adică pe capul listei legate).
  3. 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
    }
}