Intern
Mis on virnad?
sobes.tech AI
Vastus AI-lt
Kaste on andmestruktuur, mis töötab LIFO (Last-In, First-Out) põhimõttel. Elemente lisatakse ja eemaldatakse ainult ühest otsast, mida nimetatakse kasti tipuks.
Peamised toimingud:
push: lisa element kasti tippu.pop: eemalda element kastist tipust ja tagasta see.peek: saa kasti tipu väärtus ilma seda eemaldamata.isEmpty: kontrolli, kas kast on tühi.
Java-s on kasti esindatud Stack klassiga, mis on Vector alamklass:
// Näide Stacki kasutamisest
import java.util.Stack;
public class StackExample {
public static void main(String[] args) {
Stack<String> stack = new Stack<>();
stack.push("Esimene"); // Elementide lisamine
stack.push("Teine");
stack.push("Kolmas");
System.out.println("Kasti tipp: " + stack.peek()); // Vaata peamist elementi
while (!stack.empty()) { // Kui kast ei ole tühi
System.out.println("Eemaldame: " + stack.pop()); // Eemalda elemendid
}
}
}
Alternatiivina ja kaasaegses Java arenduses soovitatav meetod on kasutada ArrayDeque kasti, kuna see tagab parema jõudluse:
// Näide ArrayDeque kasutamisest kasti
import java.util.ArrayDeque;
import java.util.Deque;
public class ArrayDequeStackExample {
public static void main(String[] args) {
Deque<String> stack = new ArrayDeque<>(); // Kasutame Deque'i kastina
stack.push("Esimene"); // Elementide lisamine
stack.push("Teine");
stack.push("Kolmas");
System.out.println("Kasti tipp: " + stack.peek()); // Vaata peamist elementi
while (!stack.isEmpty()) { // Kui kast ei ole tühi
System.out.println("Eemaldame: " + stack.pop()); // Eemalda elemendid
}
}
}
Kasutusvaldkonnad:
- Arvutuslikke avaldisi hindamine (näiteks pööratud poolkood).
- Operatsioonide tühistamine/taastamine redaktorites (Ctrl+Z/Ctrl+Y).
- Funktsioonikutsumiste haldamine operatsioonisüsteemis.
- Rekursiivsed algoritmid.
- Graafide ja puude läbimine (sügavusotsing).