本文共 1712 字,大约阅读时间需要 5 分钟。
修改上一篇的队列,修改为循环队列
package test12;/** * Created by mlink on 2017/3/16. */public class Queue { private long[] arr; private int maxSize;//最大空间 private int elems;//有效元素大小 private int font ;//队头 private int end ;//队尾 public Queue(int maxSize){ this.maxSize =maxSize; arr = new long[maxSize]; elems =0; font =0; end = -1; } //插入数据 public void insert(long value){ if(end==maxSize-1){ end = -1; } arr[++end]= value; elems++; } //移除数据 public long remove(){ long temp = arr[font++]; if(font ==maxSize){ font =0; } elems--; return temp; } //是否为空 public boolean isEmpty(){ return (elems==0); } //是否满了 public boolean isFull(){ return (elems==maxSize); } //返回有效数字大小 public int size(){ return elems; }}然后测试就不会报错了:
package test12;/** * Created by mlink on 2017/3/17. */public class Test { public static void main(String[] args) { Queue qu= new Queue(5); System.out.println(qu.isEmpty()); qu.insert(50); qu.insert(40); qu.insert(30); qu.insert(20); qu.insert(10); System.out.println(qu.isEmpty()); System.out.println(qu.isFull()); while (!qu.isEmpty()){ long temp = qu.remove(); System.out.print(temp+" "); } qu.insert(50); qu.insert(40); qu.insert(30); qu.insert(20); qu.insert(10); System.out.println(qu.isEmpty()); System.out.println(qu.isFull()); while (!qu.isEmpty()){ long temp = qu.remove(); System.out.print(temp+" "); } }}
转载地址:http://ppbni.baihongyu.com/