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

java棧和隊列底層實現

黃文隆1年前6瀏覽0評論

棧和隊列是常用的數據結構。在Java中,棧和隊列可以通過數組或鏈表來實現。

棧的實現:

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

以上代碼使用數組實現了一個基本的整型棧。在構造函數中,創建了一個指定大小的數組。push和pop方法分別在棧頂加入元素和刪除棧頂元素。isEmpty和isFull方法判斷棧是否為空或已滿。

隊列的實現:

public class MyQueue {
private int[] data;
private int front;
private int rear;
public MyQueue(int size) {
data = new int[size];
front = rear = -1;
}
public boolean isEmpty() {
return front == rear;
}
public boolean isFull() {
return rear == data.length - 1;
}
public void enQueue(int x) {
if (!isFull()) {
data[++rear] = x;
}
}
public int deQueue() {
if (!isEmpty()) {
return data[++front];
} else {
// 或者拋出異常:throw new RuntimeException("Queue is empty!")
return -1;
}
}
}

以上代碼使用了數組實現一個基本的整型隊列。front和rear分別代表隊頭和隊尾。enQueue和deQueue方法分別入隊和出隊。isEmpty和isFull方法分別判斷隊列是否為空或已滿。

總的來說,無論使用數組還是鏈表,棧和隊列的底層實現都是非常基礎和重要的。了解和掌握其實現原理,可以幫助我們更好地理解和應用棧和隊列這兩種數據結構。