欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java棧結構順序棧和鏈式棧

陳思宇1年前6瀏覽0評論

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中棧結構的兩種實現方式:順序棧和鏈式棧。兩者在實現方式上有所不同,可以根據實際需求進行選擇。