Sobes.tech
Intern

Kas ir steki?

sobes.tech AI

Atbilde no AI

Stāvs ir datu struktūra, kas darbojas pēc LIFO (Last-In, First-Out) principa. Elementi tiek pievienoti un noņemti tikai no viena gala, kas saucās stāva virsma.

Galvenās operācijas:

  • push: pievienot elementu stāva virsmai.
  • pop: noņemt elementu no stāva virsmas un atgriezt to.
  • peek: iegūt elementa vērtību stāva virsā bez noņemšanas.
  • isEmpty: pārbaudīt, vai stāvs ir tukšs.

Java stāvs ir pārstāvēts ar Stack klasi, kas ir Vector apakšklaase:

// Piemērs, kā izmantot Stack
import java.util.Stack;

public class StackExample {

    public static void main(String[] args) {
        Stack<String> stack = new Stack<>();

        stack.push("Pirmais"); // Pievienot elementus
        stack.push("Otrais");
        stack.push("Trešais");

        System.out.println("Stāva virsma: " + stack.peek()); // Skatīt augšējo elementu

        while (!stack.empty()) { // Kamēr stāvs nav tukšs
            System.out.println("Izņemam: " + stack.pop()); // Izņemt elementus
        }
    }
}

Alternatīvi un mūsdienu Java programmēšanā ieteicams izmantot ArrayDeque kā stāvu, jo tas nodrošina labāku veiktspēju:

// Piemērs, kā izmantot ArrayDeque kā stāvu
import java.util.ArrayDeque;
import java.util.Deque;

public class ArrayDequeStackExample {

    public static void main(String[] args) {
        Deque<String> stack = new ArrayDeque<>(); // Izmantojam Deque kā stāvu

        stack.push("Pirmais"); // Pievienot elementus
        stack.push("Otrais");
        stack.push("Trešais");

        System.out.println("Stāva virsma: " + stack.peek()); // Skatīt augšējo elementu

        while (!stack.isEmpty()) { // Kamēr stāvs nav tukšs
            System.out.println("Izņemam: " + stack.pop()); // Izņemt elementus
        }
    }
}

Stāvu pielietojumi:

  • Aprēķinu izteiksmju vērtēšana (piemēram, atpakaļējā poliskā notācija).
  • Atcelšana/atkārtošana redaktoros (Ctrl+Z/Ctrl+Y).
  • Funkciju izsaukumu pārvaldība operētājsistēmā.
  • Rekursīvi algoritmi.
  • Grafu un koku apmeklējumi (dziļuma meklēšana).