English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

教程基础Java

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Gestione delle eccezioni Java

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java 程序实现堆栈(Stack)数据结构

    Esempi Java completi

在这个实例中,我们将学习用Java实现堆栈数据结构。

要了解此示例,请确保您首先访问以下教程,

示例1:实现堆栈的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");
      // termina il programma
      System.exit(1);
    }
    // inserisci l'elemento sulla cima dello stack
    System.out.println("Inserisci " + x);
    arr[++top] = x;
  }
  //Estrarre l'elemento dall'alto della pila
  public int pop() {
    // se lo stack è vuoto
    // non ci sono elementi da espellere
    if (isEmpty()) {
      System.out.println("STACK EMPTY");
      // termina il programma
      System.exit(1);
    }
    //Estrarre l'elemento dall'alto della pila
    return arr[top--];
  }
  // restituisce la dimensione dello stack
  public int getSize() {
    return top + 1;
  }
  // verifica se lo stack è vuoto
  public Boolean isEmpty() {
    return top == -1;
  }
  // verifica se lo stack è pieno
  public Boolean isFull() {
    return top == capacity - 1;
  }
  // visualizza gli elementi dello 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();
    // rimuovi l'elemento dalla pila
    stack.pop();
    System.out.println("\nDopo l'espulsione");
    stack.printStack();
  }
}

Risultato di output

Inserisci 1
Inserisci 2
Inserisci 3
Stack: 1, 2, 3,  
Dopo l'espulsione
1, 2,

Nell'esempio sopra, abbiamo implementato la struttura dati stack in Java.

Esempio 2: Implementazione di uno stack utilizzando la classe Stack

Java fornisce una classe integrata Stack utilizzabile per implementare uno stack.

import java.util.Stack;
class Main {
  public static void main(String[] args) {
    // creare un oggetto della classe Stack
    Stack<String> animals = new Stack<>();
    //Inserire l'elemento in cima alla pila
    animals.push("Cane");
    animals.push("Cavallo");
    animals.push("Gatto");
    System.out.println("Pila: " + animals);
    //Estrarre l'elemento dall'alto della pila
    animals.pop();
    System.out.println("Dopo l'eccitazione Pila: " + animals);
    }
}

Risultato di output

Pila: [Cane, Cavallo, Gatto]
Pila: [Cane, Cavallo]

Nell'esempio sopra, abbiamo utilizzato la classe Stack di Java per implementare la pila. Ecco

  • animals.push() - Inserire l'elemento in cima alla pila

  • animals.pop() - Rimuovere l'elemento dall'alto della pila

Attenzione, <String> abbiamo utilizzato parentesi angolari nella creazione della pila. Questo indica che la pila è un tipo generico. Per ulteriori informazioni sui generici, visitareGenerics Java.

Esempi Java completi