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

java棧和隊列自己寫

Java棧和隊列是數(shù)據(jù)結(jié)構(gòu)中常用的兩種數(shù)據(jù)類型。棧是一種后進(jìn)先出(LIFO)的數(shù)據(jù)結(jié)構(gòu),隊列是一種先進(jìn)先出(FIFO)的數(shù)據(jù)結(jié)構(gòu)。

// 棧的實現(xiàn)
public class Stack {
private int maxSize; // 棧的最大容量
private int[] stackArray; // 存儲數(shù)據(jù)的數(shù)組
private int top; // 棧頂指針
// 構(gòu)造方法,初始化棧的容量和棧頂指針
public Stack(int maxSize) {
this.maxSize = maxSize;
stackArray = new int[maxSize];
top = -1;
}
// 判斷棧是否為空
public boolean isEmpty() {
return top == -1;
}
// 判斷棧是否已滿
public boolean isFull() {
return top == maxSize - 1;
}
// 入棧
public void push(int data) {
if (isFull()) {
throw new RuntimeException("棧已滿,無法入棧");
}
stackArray[++top] = data;
}
// 出棧
public int pop() {
if (isEmpty()) {
throw new RuntimeException("棧為空,無法出棧");
}
return stackArray[top--];
}
// 查看棧頂元素
public int peek() {
if (isEmpty()) {
throw new RuntimeException("棧為空,無棧頂元素");
}
return stackArray[top];
}
}

在棧的實現(xiàn)中,我們定義了一個數(shù)組來存儲棧中的數(shù)據(jù),同時使用一個指針top來表示棧頂?shù)奈恢谩H霔2僮鲗?shù)據(jù)添加到數(shù)組的末尾,并將指針top加一;出棧操作將棧頂元素從數(shù)組中移除,并將top減一。

// 隊列的實現(xiàn)
public class Queue {
private int maxSize; // 隊列的最大容量
private int[] queueArray; // 存儲數(shù)據(jù)的數(shù)組
private int front; // 隊列頭指針
private int rear; // 隊列尾指針
// 構(gòu)造方法,初始化隊列的容量、頭指針和尾指針
public Queue(int maxSize) {
this.maxSize = maxSize;
queueArray = new int[maxSize];
front = 0;
rear = -1;
}
// 判斷隊列是否為空
public boolean isEmpty() {
return rear == front - 1;
}
// 判斷隊列是否已滿
public boolean isFull() {
return rear == maxSize - 1;
}
// 入隊
public void enqueue(int data) {
if (isFull()) {
throw new RuntimeException("隊列已滿,無法入隊");
}
queueArray[++rear] = data;
}
// 出隊
public int dequeue() {
if (isEmpty()) {
throw new RuntimeException("隊列為空,無法出隊");
}
return queueArray[front++];
}
// 查看隊頭元素
public int peek() {
if (isEmpty()) {
throw new RuntimeException("隊列為空,無隊頭元素");
}
return queueArray[front];
}
}

在隊列的實現(xiàn)中,我們同樣使用一個數(shù)組來存儲隊列中的數(shù)據(jù),使用兩個指針front和rear分別表示隊列頭和隊列尾的位置。入隊操作將數(shù)據(jù)添加到數(shù)組末尾,并將指針rear加一;出隊操作將隊頭元素從數(shù)組中移除,并將指針front加一。

上一篇php libgd