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.