English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом примере мы изучим реализацию структуры данных стек на Java.
Чтобы понять этот пример, убедитесь, что вы сначала посетили следующие руководства:
// Stack 实现于 Java class Stack { //存储堆栈元素 private int[] arr; //表示堆栈的顶部 private int top; //堆栈的总容量 private int capacity; //创建堆栈 Stack(int size) { // 初始化数组 // 初始化堆栈变量 arr = new int[size]; capacity = size; top = -1; } // 将元素推送到堆栈顶部 public void push(int x) { if (isFull()) { System.out.println("Stack OverFlow"); // Завершить программу System.exit(1); } // Вставить элемент в顶端 стека System.out.println("Вставка " + x); arr[++top] = x; } //Удаление элемента с верхушки стека public int pop() { // Если стек пуст // Нет элементов для извлечения if (isEmpty()) { System.out.println("STACK EMPTY"); // Завершить программу System.exit(1); } //Удаление элемента с верхушки стека return arr[top--]; } // Возвратить размер стека public int getSize() { return top + 1; } // Проверить, пуст ли стек public Boolean isEmpty() { return top == -1; } // Проверить, полон ли стек public Boolean isFull() { return top == capacity - 1; } // Показать элементы стека public void printStack() { for (int i = 0; i <= top; i++) { System.out.print(arr[i] + ", "); } } public static void main(String[] args) { Stack stack = new Stack(5); stack.push(1); stack.push(2); stack.push(3); System.out.print("Стек: "); stack.printStack(); // Удаление элемента из стека stack.pop(); System.out.println("\nПосле извлечения"); stack.printStack(); } }
Результат вывода
Вставка 1 Вставка 2 Вставка 3 Стек: 1, 2, 3, После извлечения 1, 2,
В предыдущем примере мы реализовали структуру данных стек на Java.
Java предоставляет встроенный класс Stack, который можно использовать для реализации стека.
import java.util.Stack; class Main { public static void main(String[] args) { // Создание объекта класса Stack Stack<String> animals = new Stack<>(); //Вставка элемента в вершину стека animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); //Удаление элемента с верхушки стека animals.pop(); System.out.println("после弹出 Stack: " + animals); } }
Результат вывода
Stack: [Dog, Horse, Cat] Stack: [Dog, Horse]
В вышеуказанном примере мы используем класс Java Stack для реализации стека. Здесь,
animals.push() - Вставка элемента в вершину стека
animals.pop() - Удаление элемента с верхушки стека
Внимание, мы <String> используем острые углы при создании стека. Это означает, что стек является генерическим типом. Для получения дополнительной информации о генериках посетитеJava генерик。