Intern
Stacklər nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Yığın, LIFO (Last-In, First-Out) prinsipinə əsaslanan məlumat strukturu olub, elementlər yalnız bir uclu, yəni yığının tepe nöqtəsindən əlavə və silinir.
Əsas əməliyyatlar:
push: elementi yığının tepe nöqtəsinə əlavə edir.pop: elementi yığının tepe nöqtəsindən silir və geri qaytarır.peek: yığının tepe nöqtəsindəki elementin dəyərini onun silinmədən əldə edir.isEmpty: yığının boş olub-olmadığını yoxlayır.
Java-da yığın Stack sinfi ilə təmsil olunur və bu sinif Vector-in alt sinfidir.
// Stack istifadəsi nümunəsi
import java.util.Stack;
public class StackExample {
public static void main(String[] args) {
Stack<String> stack = new Stack<>();
stack.push("Birinci"); // Elementlərin əlavə olunması
stack.push("İkinci");
stack.push("Üçüncü");
System.out.println("Yığının tepe nöqtəsi: " + stack.peek()); // Yuxarıdakı elementi gör
while (!stack.empty()) { // Yığın boş deyil
System.out.println("Çıxarırıq: " + stack.pop()); // Elementləri çıxarırıq
}
}
}
Müasir Java inkişafında tövsiyə olunan və daha yaxşı performans təmin edən alternativ ArrayDeque-dən istifadə etməkdir, çünki bu daha yaxşı performans göstərir.
// ArrayDeque istifadə nümunəsi
import java.util.ArrayDeque;
import java.util.Deque;
public class ArrayDequeStackExample {
public static void main(String[] args) {
Deque<String> stack = new ArrayDeque<>(); // Deque-ni yığın kimi istifadə etmək
stack.push("Birinci"); // Elementlərin əlavə olunması
stack.push("İkinci");
stack.push("Üçüncü");
System.out.println("Yığının tepe nöqtəsi: " + stack.peek()); // Yuxarıdakı elementi gör
while (!stack.isEmpty()) { // Yığın boş deyil
System.out.println("Çıxarırıq: " + stack.pop()); // Elementləri çıxarırıq
}
}
}
Yığınların tətbiqləri:
- Aritmetik ifadələrin hesablanması (məsələn, tərs Polşa notasyonu ilə).
- Redaktə proqramlarında əməliyyatların geri alınması/yenidən tətbiqi (Ctrl+Z/Ctrl+Y).
- Əməliyyat sistemində funksiyaların çağırışlarının idarə olunması.
- Rekursiv alqoritmlər.
- Qraf və ağacların gəzintisi (dərinliklə axtarış).