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

java棧和隊列知識點

呂致盈1年前8瀏覽0評論

Java中的棧和隊列都是數據存儲結構,具有不同的特點和使用場景。

棧(Stack)是后進先出(LIFO)的數據結構,類似于一摞盤子,只有最后放入的盤子可以被取出來。棧的實現通常使用數組或鏈表等數據結構,其中push()和pop()方法是基本操作。棧可以應用于表達式求值、調用堆棧、回溯等場景。

public class Stack {
private int maxSize;
private int[] stackArray;
private int top;
public Stack(int max) {
maxSize = max;
stackArray = new int[maxSize];
top = -1;
}
public void push(int j) {
stackArray[++top] = j;
}
public int pop() {
return stackArray[top--];
}
public int peek() {
return stackArray[top];
}
public boolean isEmpty() {
return top == -1;
}
public boolean isFull() {
return top == maxSize - 1;
}
}

隊列(Queue)是先進先出(FIFO)的數據結構,類似于排隊買東西,先來的人先服務。隊列的實現通常使用數組或鏈表等數據結構,其中enqueue()和dequeue()方法是基本操作。隊列可以應用于消息隊列、任務隊列等場景。

public class Queue {
private int maxSize;
private long[] queArray;
private int front;
private int rear;
private int nItems;
public Queue(int s) {
maxSize = s;
queArray = new long[maxSize];
front = 0;
rear = -1;
nItems = 0;
}
public void insert(long j) {
if (rear == maxSize - 1)
rear = -1;
queArray[++rear] = j;
nItems++;
}
public long remove() {
long temp = queArray[front++];
if (front == maxSize)
front = 0;
nItems--;
return temp;
}
public long peekFront() {
return queArray[front];
}
public boolean isEmpty() {
return (nItems == 0);
}
public boolean isFull() {
return (nItems == maxSize);
}
public int size() {
return nItems;
}
}

棧和隊列是常見的數據結構,掌握它們的基本原理和操作方法對于Java開發非常重要