欢迎访问宙启技术站
智能推送

Java中如何实现堆栈数据结构

发布时间:2023-07-01 05:10:42

在Java中,可以通过使用数组或链表来实现堆栈数据结构。

1. 使用数组实现堆栈数据结构:

- 首先,定义一个数组来存储堆栈数据。

- 定义一个变量top来指示栈顶的位置,初始值为-1。

- 实现push操作,将要入栈的元素放入数组的top+1的位置,并将top的值加1。

- 实现pop操作,返回数组top位置的元素,并将top的值减1。

示例代码如下:

   public class ArrayStack {
       private int[] stack; 
       private int top;

       public ArrayStack(int capacity) {
           stack = new int[capacity];
           top = -1;
       }

       public void push(int element) {
           stack[++top] = element;
       }

       public int pop() {
           return stack[top--];
       }

       public static void main(String[] args) {
           ArrayStack stack = new ArrayStack(5);
           stack.push(1);
           stack.push(2);
           stack.push(3);

           System.out.println(stack.pop()); 
           System.out.println(stack.pop()); 
       }
   }
   

2. 使用链表实现堆栈数据结构:

- 首先,定义一个节点类Node来表示链表的节点,包含一个value属性和next指针。

- 定义一个head指针来指向链表的头节点。

- 实现push操作,创建一个新的节点,并将新节点的next指向head,然后将head指向新节点。

- 实现pop操作,返回head指向的节点的value,并将head指向head的next节点。

示例代码如下:

   public class LinkedListStack {
       private Node head;

       private class Node {
           private int value;
           private Node next;

           public Node(int value) {
               this.value = value;
           }
       }

       public void push(int element) {
           Node newNode = new Node(element);
           newNode.next = head;
           head = newNode;
       }

       public int pop() {
           int poppedValue = head.value;
           head = head.next;
           return poppedValue;
       }

       public static void main(String[] args) {
           LinkedListStack stack = new LinkedListStack();
           stack.push(1);
           stack.push(2);
           stack.push(3);

           System.out.println(stack.pop()); 
           System.out.println(stack.pop()); 
       }
   }
   

以上是通过数组和链表两种方式实现堆栈数据结构的示例代码。在实际使用中,可以根据具体的需求选择合适的实现方式。