Intern
Čo sú zásobníky?
sobes.tech AI
Odpoveď od AI
Zásobník je dátová štruktúra, ktorá funguje podľa princípu LIFO (Last-In, First-Out). Prvky sa pridávajú a odstraňujú iba z jedného konca, nazývaného vrchol zásobníka.
Hlavné operácie:
push: pridanie prvku na vrchol zásobníka.pop: odstránenie prvku z vrcholu zásobníka a jeho vrátenie.peek: získanie hodnoty prvku na vrchole zásobníka bez jeho odstránenia.isEmpty: kontrola, či je zásobník prázdny.
V Jave je zásobník reprezentovaný triedou Stack, ktorá je podtriedou Vector.
// Príklad použitia zásobníka
import java.util.Stack;
public class StackExample {
public static void main(String[] args) {
Stack<String> stack = new Stack<>();
stack.push("Prvý"); // Pridanie prvkov
stack.push("Druhý");
stack.push("Tretí");
System.out.println("Vrchol zásobníka: " + stack.peek()); // Zobrazenie horného prvku
while (!stack.empty()) { // Kým zásobník nie je prázdny
System.out.println("Odobratie: " + stack.pop()); // Odstránenie prvkov
}
}
}
Alternatíva a odporúčaný prístup v modernom Java vývoji je použitie ArrayDeque ako zásobníka, pretože poskytuje lepší výkon.
// Príklad použitia ArrayDeque ako zásobníka
import java.util.ArrayDeque;
import java.util.Deque;
public class ArrayDequeStackExample {
public static void main(String[] args) {
Deque<String> stack = new ArrayDeque<>(); // Použitie Deque ako zásobníka
stack.push("Prvý"); // Pridanie prvkov
stack.push("Druhý");
stack.push("Tretí");
System.out.println("Vrchol zásobníka: " + stack.peek()); // Zobrazenie horného prvku
while (!stack.isEmpty()) { // Kým zásobník nie je prázdny
System.out.println("Odobratie: " + stack.pop()); // Odstránenie prvkov
}
}
}
Použitie zásobníkov:
- Výpočet aritmetických výrazov (napríklad v inverznej poľskej notácii).
- Zrušenie/opakovanie operácií v textových editoroch (Ctrl+Z/Ctrl+Y).
- Riadenie volaní funkcií v operačnom systéme.
- Rekurzívne algoritmy.
- Prechádzanie grafov a stromov (hĺbkové vyhľadávanie).