Java教程

Java 实现栈数据结构的程序

实现栈数据结构的Java程序

在这个例子中,我们将学习在 Java 中实现堆栈数据结构。
要理解此示例,您应该了解以下Java 编程主题:
Java 堆栈类 Java 泛型

示例1: 实现Stack的Java程序

// Stack implementation in Java
class Stack {
  // store elements of stack
  private int arr[];
  // represent top of stack
  private int top;
  // total capacity of the stack
  private int capacity;
  // Creating a stack
  Stack(int size) {
    // initialize the array
    // initialize the stack variables
    arr = new int[size];
    capacity = size;
    top =-1;
  }
  // push elements to the top of stack
  public void push(int x) {
    if (isFull()) {
      System.out.println("Stack OverFlow");
      // terminates the program
      System.exit(1);
    }
    // insert element on top of stack
    System.out.println("Inserting " + x);
    arr[++top] = x;
  }
  // pop elements from top of stack
  public int pop() {
    // if stack is empty
    // no element to pop
    if (isEmpty()) {
      System.out.println("STACK EMPTY");
      // terminates the program
      System.exit(1);
    }
    // pop element from top of stack
    return arr[top--];
  }
  // return size of the stack
  public int getSize() {
    return top + 1;
  }
  // check if the stack is empty
  public boolean isEmpty() {
    return top ==-1;
  }
  // check if the stack is full
  public boolean isFull() {
    return top == capacity-1;
  }
  // display elements of stack
  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: ");
    stack.printStack();
    // remove element from stack
    stack.pop();
    System.out.println("\nAfter popping out");
    stack.printStack();
  }
}
输出
Inserting 1
Inserting 2
Inserting 3
Stack: 1, 2, 3,  
After popping out
1, 2, 
在上面的例子中,我们已经用 Java 实现了堆栈数据结构。
要了解更多信息,请访问Stack Data Structure。

示例 2: 使用 Stack 类实现堆栈

Java 提供了一个内置的 Stack 类,可用于实现堆栈。
import java.util.Stack;
class Main {
  public static void main(String[] args) {
    // create an object of Stack class
    Stack<String> animals= new Stack<>();
    // push elements to top of stack
    animals.push("Dog");
    animals.push("Horse");
    animals.push("Cat");
    System.out.println("Stack: " + animals);
    // pop element from top of stack
    animals.pop();
    System.out.println("Stack after pop: " + animals);
    }
}
输出
Stack: [Dog, Horse, Cat]
Stack after pop: [Dog, Horse]
在上面的例子中,我们使用了 Stack 类在 Java 中实现了堆栈。在这里,
animals.push()-将元素插入到栈顶 animals.pop()-从栈顶移除元素
注意,我们在创建堆栈时使用了尖括号 。它表示堆栈是泛型类型。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4