Java中的棧是一種常見的數據結構,主要用于實現后進先出(LIFO)的操作順序,該結構有兩種實現方式:順序棧和鏈式棧。
順序棧:
public class ArrayStack { private int top; // 棧頂位置 private int[] data; // 存儲數據的數組 public ArrayStack(int size) { data = new int[size]; top = -1; } // 判斷棧是否為空 public boolean isEmpty() { return top == -1; } // 判斷棧是否已滿 public boolean isFull() { return top == data.length - 1; } // 入棧 public void push(int value) { if (isFull()) { System.out.println("棧已滿,無法入棧"); return; } data[++top] = value; } // 出棧 public int pop() { if (isEmpty()) { System.out.println("棧已空,無法出棧"); return -1; } return data[top--]; } }
鏈式棧:
public class LinkedStack { private Node top; // 棧頂節點 private class Node { int value; Node next; public Node(int value) { this.value = value; } } // 判斷棧是否為空 public boolean isEmpty() { return top == null; } // 入棧 public void push(int value) { Node newNode = new Node(value); if (isEmpty()) { top = newNode; } else { newNode.next = top; top = newNode; } } // 出棧 public int pop() { if (isEmpty()) { System.out.println("棧已空,無法出棧"); return -1; } int value = top.value; top = top.next; return value; } }
以上就是Java中棧結構的兩種實現方式:順序棧和鏈式棧。兩者在實現方式上有所不同,可以根據實際需求進行選擇。
上一篇ajax作刪除后頁面刷新
下一篇ajax使用視頻教程下載