Sobes.tech
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).