Sobes.tech
Junior — Middle

Ako postaviť dátovú štruktúru zásobník pomocou spájkovaného zoznamu?

sobes.tech AI

Odpoveď od AI

Zásobník možno implementovať na základe prepojenej zoznamu, kde každý prvok (uzol) obsahuje údaje a odkaz na nasledujúci prvok. Horný prvok zásobníka je hlava zoznamu. Hlavné operácie:

  • push — pridanie nového uzla na začiatok zoznamu;
  • pop — odstránenie uzla z začiatku zoznamu a vrátenie jeho hodnoty;
  • peek — zobrazenie hodnoty hlavy bez odstránenia.

Príklad v 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
}

Tento prístup zabezpečuje operácie zásobníka v čase O(1) a umožňuje dynamické rozširovanie bez potreby alokácie veľkého poľa.