Intern
Стектер эмне?
sobes.tech AI
AIден жооп
Тасма — бул маалымат структурасы, ал LIFO (Акыркы киргизилген — биринчи чыгарыла турган) принцибин колдонуп иштейт. Элементтер бир гана бир жээктен, аны тасманын чокусунан кошуп жана алып салынат.
Негизги операциялар:
push: элементти тасманын чокусуна кошуу.pop: элементти тасманын чокусунан алып салуу жана кайтаруу.peek: тасманын чокусундагы маанини алуу, ал алып салынбайт.isEmpty: тасма бошпу деп текшерүү.
Javaда тасма Stack классы менен берилет, ал Vector классынын подклассу:
// Stack колдонуу мисалы
import java.util.Stack;
public class StackExample {
public static void main(String[] args) {
Stack<String> stack = new Stack<>();
stack.push("Биринчи"); // Элементтерди кошуу
stack.push("Экинчи");
stack.push("Үчүнчү");
System.out.println("Тасманын чокусу: " + stack.peek()); // Жогорку элементти карап чыгуу
while (!stack.empty()) { // Эгер тасма бош эмес болсо
System.out.println("Алып салуу: " + stack.pop()); // Элементтерди алып салуу
}
}
}
Альтернатива жана азыркы Java иштеп чыгууда сунушталган ыкма — ArrayDeque колдонуу, ал жакшыраак иштөө камсыздайт:
// ArrayDeque колдонуу мисалы
import java.util.ArrayDeque;
import java.util.Deque;
public class ArrayDequeStackExample {
public static void main(String[] args) {
Deque<String> stack = new ArrayDeque<>(); // Deque'ны тасма катары колдонуу
stack.push("Биринчи"); // Элементтерди кошуу
stack.push("Экинчи");
stack.push("Үчүнчү");
System.out.println("Тасманын чокусу: " + stack.peek()); // Жогорку элементти карап чыгуу
while (!stack.isEmpty()) { // Эгер тасма бош эмес болсо
System.out.println("Алып салуу: " + stack.pop()); // Элементтерди алып салуу
}
}
}
Тасмалардын колдонулушу:
- Арифметикалык билдирүүлөрдү эсептөө (мисалы, кері польская жазуу нотациясында).
- Редакторлордо операцияларды болтурбоо/кайтаруу (Ctrl+Z/Ctrl+Y).
- Операциялык системада функция чакырууларын башкаруу.
- Рекурсивдүү алгоритмдер.
- Графтар жана дарактарды обход (тереңдик издөө).