Sobes.tech
Junior — Middle

Cum se poate construi o structură de date stivă folosind o listă legată?

sobes.tech AI

Răspuns de la AI

Stiva poate fi implementată pe baza unei liste înlănțuite, unde fiecare element (nod) conține date și o referință la elementul următor. Elementul superior al stivei este capul listei. Operațiile principale sunt:

  • push — adăugarea unui nou nod la începutul listei;
  • pop — eliminarea nodului de la începutul listei și returnarea valorii sale;
  • peek — vizualizarea valorii capului fără a-l elimina.

Exemplu în Kotlin:

class Node<T>(val data: T, var next: Node<T>? = null)

class Stack<T> {
    private var head: Node<T>? = null

    fun push(value: T) {
        val newNode = Node(value, head)
        head = newNode
    }

    fun pop(): T? {
        val value = head?.data
        head = head?.next
        return value
    }

    fun peek(): T? = head?.data

    fun isEmpty() = head == null
}

Această abordare asigură operații de stivă în O(1) timp și extindere dinamică fără a fi nevoie de alocarea unui array mare.