一 队列
队列也是和栈类似的线性表,只不过栈遵循先进后出的原则,而列表则遵从先进先出的原则,普通队列一般有头部和尾部,数据从头部出,从尾部进,队列一般还有双端队列、并发队列、阻塞队列等,这里只说普通队列的实现。
二 自己实现普通队列
package queue;
//这里使用数组实现队列
public class Queue {
private int[] queue;
int maxSize; //最大容量
int front ; //队列头
int rear ; //队列尾部
public Queue() {
}
public Queue(int maxSize) {
this.maxSize = maxSize;
queue = new int[maxSize];
front = -1;
rear = -1;
}
//判断队列是否满
public boolean isFull(){
return rear == maxSize-1;
}
//判断队列是否为空
public boolean isEmpty(){
return rear == front;
}
//添加数据到队列
public void addQueue(int n){
if(isFull()){
System.out.println("队列满");
return;
}
rear++;
queue[rear] = n;
}
//获取队列的数据
public int getQueue(){
if (isEmpty()){
throw new RuntimeException("队列空");
}
front++;
return queue[front];
}
//显示队列的所有数据
public void showQueue(){
if (isEmpty()){
System.out.println("队列为空,无数据");
}
for (int i :queue){
System.out.println(i);
}
}
}
三 Queue
java中的队列接口是Queue,其中主要参见其子接口Deque