1.队列
队列与栈类似,一般都是通过数组来实现相关功能,通过数组中头部指针和尾部指针的移动来保持所有数据项的位置不变
队列特点:先进先出
2.源码实现
public class QueueDemo {
private String[] arr;
private int maxSize;
private int front;//头部index
private int rear;//尾部index
private int nElems;//元素个数
public QueueDemo(int size) {
arr = new String[size];
maxSize = size;
front = 0;
rear = -1;
nElems = 0;
}
//从尾部添加
public void insert(String str){
if(isFull()){
return;
}
if(rear == maxSize-1){//说明已经到底
rear = -1;//从底部回转到头部重新开始赋值
}
arr[++rear] = str;
nElems++;
}
//从头部删除数据
public String remove(){
if(isEmpty()){
return "";
}
String str = arr[front++];//获取头部数据,并且头部指针上移一位,
if(front == maxSize){//说明已经达到顶部,从底部重新开始
front = 0;
}
nElems--;
return str;
}
public String peekFront(){
return arr[front];
}
public boolean isFull(){
return nElems == maxSize;
}
public boolean isEmpty(){
return nElems == 0;
}
}