Java語言中的棧(Stack)是一種非常重要的數據結構。棧的特點是“先進后出”,即數據項只能從棧頂進棧和出棧。在Java中,實現棧的方式一般是使用數組或者鏈表來模擬。
//使用數組模擬棧實現push、pop操作 public class ArrayStack { private int top; private int[] stackArray; private int maxSize; public ArrayStack(int maxSize) { top = -1; this.maxSize = maxSize; stackArray = new int[maxSize]; } public boolean push(int val) { if (top == maxSize - 1) { System.out.println("Stack Overflow"); return false; } else { stackArray[++top] = val; return true; } } public int pop() { if (top == -1) { System.out.println("Stack Underflow"); return -1; } else { return stackArray[top--]; } } }
上述代碼使用了數組來模擬棧,其中push()方法用于將數據項入棧,pop()方法用于將數據項出棧。
//使用鏈表模擬棧實現push、pop操作 public class LinkStack { private Node top; public LinkStack() { top = null; } public boolean isEmpty() { return top == null; } public void push(int val) { Node newNode = new Node(val); newNode.next = top; top = newNode; } public int pop() { if (isEmpty()) { System.out.println("Stack Underflow"); return -1; } int value = top.data; top = top.next; return value; } //內部類,用于定義鏈表節點 private class Node { private int data; private Node next; public Node(int data) { this.data = data; next = null; } } }
上述代碼使用了鏈表來模擬棧,其中push()方法用于將數據項入棧,pop()方法用于將數據項出棧。