出队原理
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/1ec12f7d3307ca0bb47945017ccf8d08.png)
代码实现
class QueueLink{
int elem[];
/**
* 队头
*/
int front;
/**
* 队尾
*/
int rear;
/**
* 当前循环内部有效循环个数
*/
int usedSize = 0;
int allSize = 0;
/**
* 无参构造函数
*/
public QueueLink(){
this(10);
}
/**
* 有参构造函数
* @param size
*/
public QueueLink(int size){
this.elem = new int[size+1];
this.front = 0;
this.rear = 0;
this.allSize= size+1;
}
/**
* 判断是否为满
*/
public boolean isFull(){
if((this.rear+1)%this.allSize == this.front){
return true;
}
return false;
}
/**
* 入队
*/
public void push(int val){
if(isFull()){
return;
}
this.elem[this.rear] = val;
this.rear = (this.rear+1)%this.allSize;
this.usedSize++;
}
/**
* 判断是否为空
*/
public boolean isEmpty(){
return this.front == this.rear;
}
/**
* 出队
*/
public int pop(){
if(isEmpty()){
return -1;
}
int a = this.elem[this.front];
this.elem[this.front] = -1;
this.front = (this.front+1)%this.allSize;
this.usedSize--;
return a;
}
/**
* 得到队头元素
*/
public int getTop(){
if(isEmpty()){
return -1;
}
return this.elem[this.front];
}
/**
* 打印输出
*/
public void show(){
for(int i = this.front;i < this.rear;i = (i+1)%this.allSize){
System.out.print(this.elem[i]+" ");
}
System.out.println();
}
}
public class Test3 {
public static void enter(QueueLink q1,QueueLink q2,int val){
QueueLink p=null;
if(!q1.isEmpty()){
p=q1;
}else{
p=q2;
}
p.push(val);
}
public static int pop(QueueLink q1,QueueLink q2){
QueueLink p1=null;
QueueLink p2=null;
if(!q1.isEmpty()){
p1=q1;
p2=q2;
}else{
p1=q2;
p2=q1;
}
if(p1.isEmpty()){
}else{
while(p1.usedSize>1){
p2.push(p1.pop());
}
return p1.pop();
}
return -1;
}
public static void main(String[] args) {
QueueLink q1=new QueueLink ();
QueueLink q2=new QueueLink ();
q1.push(10);
q1.push(20);
q1.push(30);
enter(q1,q2,40);
q1.show();
System.out.println("=====出栈后======");
System.out.println(pop(q1,q2));
q1.show();
System.out.println("=====出栈后=====");
System.out.println(pop(q1,q2));
System.out.println("=====剩余=====");
q1.show();
}
}
运行结果
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/8a4c1817169659f360297a99eeb817b8.png)