Junior
Jak funguje zásobník v kontextu programování?
sobes.tech AI
Odpověď od AI
Zásobník je abstraktní datový typ, který pracuje podle principu LIFO (Last-In, First-Out).
Hlavní operace se zásobníkem:
- Push: Přidání prvku na vrchol zásobníku.
- Pop: Odebrání a vrácení prvku z vrcholu zásobníku.
- Peek (nebo Top): Vrácení prvku z vrcholu bez jeho odebrání.
- isEmpty: Kontrola, zda je zásobník prázdný.
- size: Vrácení počtu prvků v zásobníku.
Příklad implementace zásobníku v Kotlinu s použitím MutableList:
class Stack<T> {
private val elements = mutableListOf<T>()
fun push(item: T) {
elements.add(item)
}
fun pop(): T? {
return if (!isEmpty()) {
elements.removeAt(elements.size - 1)
} else {
null // Nebo vyhození výjimky
}
}
fun peek(): T? {
return if (!isEmpty()) {
elements.last()
} else {
null
}
}
fun isEmpty(): Boolean {
return elements.isEmpty()
}
fun size(): Int {
return elements.size
}
}
Použití zásobníku v programování je běžné v:
- Výpočtu výrazů: Převod infixové notace na postfix nebo prefix, výpočet postfixových výrazů.
- Řízení volání funkcí/metod: Volací zásobník uchovává informace o aktivních funkcích.
- Zpět/Opakování akcí: Textové a grafické editory používají zásobník pro historii akcí.
- Procházení grafů a stromů: Používá se k implementaci algoritmu hloubkového průzkumu (DFS).
- Syntaktická analýza: Parsery používají zásobník k ověření správnosti syntaxe.
Zásobník je základní datová struktura a je důležitý pro pochopení principů fungování mnoha algoritmů a nízkoúrovňových mechanismů v operačních systémech a virtuálních strojích.