Java数据结构之有效队列

来源:互联网 发布:如何ping ip 和端口号 编辑:程序博客网 时间:2024/06/16 13:32
/** * @描述 有序对列 * 从任何位置插入数据都是有序的 * @项目名称 Java_DataStruct * @包名 com.java.stack * @类名 Queue * @author chenlin * @date 2011年6月5日 下午8:12:47 */public class SequeQueue {    private long[] arr;    private int maxSize;// 最大空间    private int len;// 有效长度    public SequeQueue(int size) {        this.maxSize = size;        this.arr = new long[maxSize];        this.len = 0;    }    /**     *插入数据     *      * @param value     */    public void insert(long value) {        int i;        for (i = 0; i < len; i++) {            //得到i            if (value > arr[i]) {                break;            }        }        //移动数据,把前面的数据往后移动一位        for (int j = len; j > i; j--) {            arr[j] = arr[j - 1];        }        arr[i] = value;        len ++;    }    /**     * 移除数据,每次移除最后一位,长度--     * 数组从0到len - 1;     */    public long remove() {        long value = arr[len - 1];        len --;        return value;    }    /**     * 判断是否为空     *      * @return     */    public boolean isEmpty() {        return (len == 0);    }    /**     * 判断是否满了     *      * @return     */    public boolean isFull() {        return (len == maxSize);    }    /**     * 获得队列的有效长度     *      * @return     */    public int size() {        return len;    }    public static void main(String[] args) {        SequeQueue queue = new SequeQueue(8);        queue.insert(22);        queue.insert(33);        queue.insert(44);        queue.insert(534);        queue.insert(21);        queue.insert(55);        while (!queue.isEmpty()) {            System.out.println(queue.remove());        }    }}
0 0
原创粉丝点击