java数组实现队列
用java数组实现队列,基本的操作有入队(add),出队(poll)和判断队列是否为空(isEmpty)。
入队时在数组的末尾增加元素,出队时将数组的头部元素取出来,判断队列是否为空就判断队列长度是否为0.
下面是代码实现
MyQueue类
public class MyQueue {
private int[] elements; //声明数组用来存储队列中的元素
MyQueue(){
elements = new int[0];
}
//入队
public void add(int element){
int[] tempArr = new int[elements.length+1];
for(int i=0;i<elements.length;i++){
tempArr[i] = elements[i];
}
tempArr[elements.length] = element;
elements = tempArr;
}
//出队
public int poll(){
if(isEmpty()==true){
throw new RuntimeException("队列已空,没有出队元素");
}
int[] tempArr = new int[elements.length-1];
int poll_num = elements[0];// 出队时从数组的头出去
for(int i=1;i<elements.length;i++){
tempArr[i-1] = elements[i];
}
elements = tempArr;
return poll_num;
}
public boolean isEmpty(){
if(elements.length==0){
return true;
}else{
return false;
}
}
}
测试类代码
public class TestMyQueue {
public static void main(String[] args) {
MyQueue mq = new MyQueue();
mq.add(1);
mq.add(2);
mq.add(3);
mq.add(4);
System.out.println("出队的元素:"+mq.poll()+"出队的元素:"+mq.poll()+"出队的元素:"+mq.poll()+"出队的元素:"+mq.poll());
System.out.println("队列是否为空:"+mq.isEmpty());
}
}