Queue (队列)

来源:互联网 发布:php接收不到ajax传值 编辑:程序博客网 时间:2024/05/17 04:16
/** * 队列 * */public class Queue {/** 一般队列队头为0位置,队尾为-1位置, * 在队尾插入rear上移一位, * 当rear等于队列总长减1时,则rear被置为-1位置, * 在队头删除front上移一位 * 当front等于队列总长时,则front被置为0位置*/private int maxSize;//最大长度private long[] queArray;//初始化一个队列private int front;//队头private int rear;//队尾private int nItems;//队列中当前数据项的个数public Queue(int s){maxSize=s;queArray=new long[maxSize];front=0;rear=-1;nItems=0;}public void insert(long j){if(rear==maxSize-1){rear=-1;}System.out.println("rear1:"+rear);queArray[++rear]=j;System.out.println("rear2:"+rear);nItems++;}public long remove(){long temp=queArray[front++];System.out.println("front1:"+front);if(front==maxSize){front=0;}System.out.println("front2:"+front);nItems--;return temp;}public long peekFront(){return queArray[front];}public boolean isEmpty(){return (nItems==0);}public boolean isFull(){return (nItems==maxSize);}public int size(){return nItems;}}


/** * 队列的实现 * */public class QueueApp {public static void main(String[] args) {Queue theQueue=new Queue(5);theQueue.insert(10);theQueue.insert(20);theQueue.insert(30);theQueue.insert(40);theQueue.remove();theQueue.remove();theQueue.remove();theQueue.insert(50);theQueue.insert(60);theQueue.insert(70);theQueue.insert(80);while(!theQueue.isEmpty()){long n=theQueue.remove();System.out.println(n);System.out.println(" ");}System.out.println(" ");}}


0 0
原创粉丝点击