21xrx.com
2025-03-25 08:19:12 Tuesday
文章检索 我的文章 写文章
使用Java实现堆栈数据结构
2023-06-17 08:44:11 深夜i     17     0
堆栈 Java LIFO

在程序设计中,经常需要使用数据结构来存储和管理数据。堆栈(Stack)是一种常用的数据结构,其操作包括压入数据、弹出数据、查看栈顶数据等。在本文中,我们将使用Java编写一个简单的堆栈数据结构,并介绍其基本操作。

首先,我们需要定义堆栈的数据结构。由于堆栈是一种后进先出(Last-In-First-Out,简称LIFO)的数据结构,因此我们可以使用数组来实现。

public class MyStack {
  private int[] array;
  private int top;
  public MyStack(int size) {
    array = new int[size];
    top = -1;
  }
  public void push(int value) {
    top++;
    array[top] = value;
  }
  public int pop() {
    int value = array[top];
    top--;
    return value;
  }
  public int peek() {
    return array[top];
  }
  public boolean isEmpty() {
    return (top == -1);
  }
  public boolean isFull() {
    return (top == array.length - 1);
  }
}

上述代码定义了一个MyStack类,包含了堆栈的基本操作:压入数据、弹出数据、查看栈顶数据、判断堆栈是否为空以及堆栈是否已满。

接下来,我们可以编写一个简单的测试程序,来测试MyStack类的功能:

public static void main(String[] args) {
  MyStack myStack = new MyStack(5);
  myStack.push(1);
  myStack.push(2);
  myStack.push(3);
  System.out.println(myStack.pop()); // 3
  myStack.push(4);
  System.out.println(myStack.peek()); // 4
  System.out.println(myStack.pop()); // 4
  System.out.println(myStack.pop()); // 2
  System.out.println(myStack.pop()); // 1
  System.out.println(myStack.isEmpty()); // true
}

在上述测试程序中,我们首先创建了一个大小为5的堆栈对象myStack。然后依次压入了三个数值,分别是1、2、3。接着使用pop()方法弹出栈顶元素3,并再次压入了数值4。使用peek()方法查看栈顶元素,发现是4。接着使用pop()方法弹出栈顶元素4、2和1。最后使用isEmpty()方法判断堆栈是否为空,输出结果为true。

  
  

评论区