栈&队列
0x00、 栈 & 队列
0.1、 用 Java 实现一个队列
0x01、 实现双端队列
public class Queue<E>{
private E[] Q;
int head = 0;
int tail = 0;
/*队列初始化的时候确定队列长度*/
public Queue(int n){
Q = new E[n];
}
public void enqueueHead(E e){
//要确保插入不会导致上溢就要首先进行预判从而确定是否要执行插入操作
head +=1;
if(head == Q.length){
head = 0;
}
if(head == tail){
notify("插入失败,队列已经满了");
head -= 1;
}else{
Q[head] = e;
}
}
public E dqueueHead(){
head -= 1;
if(head == -1){
head = Q.length-1;
if(tail == 0){
notify("删除成功,这是队列中的最后一个元素了")
}
}else{
}
if(head < tail){}
}
public void enqueueTail(E e){
//要确保插入不会导致上溢就要首先进行预判从而确定是否要执行插入操作
tail -= 1;
if(tail == -1){
tail = Q.length - 1;
}
if(tail == head){
notify("插入失败,队列已经满了");
tail -= 1;
}else{
Q[tail] = e;
}
}
public E dqueueTail(){
}
public void notify(String str){/*通知操作者操作失败的原因*/}
}Last updated