Junior — Middle
Jak postavit datovou strukturu zásobník pomocí spojovaného seznamu?
sobes.tech AI
Odpověď od AI
Zásobník lze implementovat na základě spojovaného seznamu, kde každý prvek (uzel) obsahuje data a odkaz na následující prvek. Horní prvek zásobníku je hlava seznamu. Hlavní operace:
- push — přidání nového uzlu na začátek seznamu;
- pop — odstranění uzlu z začátku seznamu a vrácení jeho hodnoty;
- peek — zobrazení hodnoty hlavy bez odstranění.
Pří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 přístup zajišťuje operace zásobníku v čase O(1) a umožňuje dynamické rozšiřování bez nutnosti alokace velkého pole.