Java用数组实现顺序队列

来源:互联网 发布:汽车修理学习软件 编辑:程序博客网 时间:2024/05/29 12:31
public class Queue {    private static final int MAX_SIZE = 100;    private Object[] queue;    private int length;     //队列初始化长度    private int front;      //Head pointers    private int rear;       //The tail pointer    //Initialize the queue    private void init(){        queue = new Object[this.length + 1];        front = rear = 0;    }    //Team    public void put(Object object)throws Exception{        if (isFull()) {            throw new Exception("team faild,queue is empty!");        }        queue[rear] = object;        rear = (rear + 1) % queue.length;    }    //Out team    public Object get() throws Exception{        if (isEmpey()) {            throw new Exception("Out team faild,queue is empty");        }        Object object = queue[front];        queue[front] = null;    //Releasiong objects.        front = (front + 1) % queue.length;        return object;    }    //Clear team    public void clear(){        queue = null;        queue = new Object[this.length];    }    //get the current queue size    public int size(){        return (rear - front + queue.length) % queue.length;    }    //Determines whether the queue is empty    private boolean isEmpey() {        // TODO Auto-generated method stub        return front == rear;    }    /**     * Determines wheter the queue is full     * @return     */    private boolean isFull() {        // TODO Auto-generated method stub        return (rear + 1) % queue.length == front;    }    public Queue(int length){        this.length = length;        init();    }    public Queue(){        this.length = MAX_SIZE;        init();    }    public static void main(String []args){        System.out.println("ceshi");        Queue queue = new Queue(5);        char[] data = new char[]{'凔','海','一','声','笑'};        try {            for (int i = 0; i < data.length; i++) {                System.err.println("Team data:" + data[i]);                    queue.put(data[i]);            }            System.out.println("Team size:" + queue.size());            System.out.println("-------------------------");            while (!queue.isEmpey()) {                System.out.println("Out data:" + queue.get());            }            System.err.println("Team of know? \t" + queue.isEmpey());        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}
0 0
原创粉丝点击