想要实现队列的输入输出,首先需要了解队列的特性。队列和栈一样是基于数组进行的实现的,底层的就是数组元素。对于队列来说,队列的最大特点是先进先出。
为什么是先进先出呢?这和队列的结构有关。你可以把队列看作一根水管,是一个两头都没有封顶,因此,在队列里的数据是先进先出。
进队列:
进队列元素:1,2,3,4,5
把这当作一个队列,size是首指针,temp是尾指针,当元素1进队列时,size往后移一位,size++,temp位置不变,其他元素一样。
出队列:
由于队列是先进先出,所以出队列先从元素1开始。当元素1出队列时,尾指针temp往后移一位,temp++,首指针size不变。当temp==size时,出队列结束。
代码实现:
package Package;
import java.util.Arrays;
public class Test4 {
public class Stack {
private int[] data =new int[5];//定义一个数组
private int size =0;//定义首指针
private int temp=0;//定义尾指针
//入队列
public void push(int i){
data[size++]=i;
if (size>=data.length){
data= Arrays.copyOf(data,size*2);
}
}
//出队列
public int pop(){
if (size==temp){
return 0;
}
int result=data[temp];
temp++;
return result;
}
}
}