java学习之—队列

/**
 * 队列
 * Create by Administrator
 * 2018/6/11 0011
 * 下午 3:27
 **/
public class Queue {

    private int maxSize;

    private long[] queArray;

    private int front;  //前

    private int rear;   //后

    private  int nItems;

    public Queue(int maxSize) {
        this.maxSize = maxSize;
        this.queArray = new long[maxSize];
        this.front = 0;
        this.rear = -1;
        this.nItems = 0;
    }

    /**
     * 添加
     * @param j
     */
    public void insert(long j){
        if(isFull()){
            System.out.println("队列满了");
        }else {
            if(rear == maxSize-1){
                rear = -1;
            }
            queArray[++rear] = j;
            nItems++;
        }
    }

    /**
     * 删除
     * @return
     */
    public long remove(){
        if(isEmpty()){
            return -1;
        }else{
            long temp = queArray[front++];
            if(front == maxSize){
                front = 0;
            }
            nItems--;
            return temp;
        }
    }

    /**
     * 查看队列第一个
     * @return
     */
    public long peekFront(){
        return queArray[front];
    }

    /**
     * 判断队列是否为空
     * @return
     */
    public boolean isEmpty(){
        return (nItems == 0);
    }

    /**
     * 判断队列是否满了
     * @return
     */
    public boolean isFull(){
        return (nItems == maxSize);
    }

    /**
     * 队列大小
     * @return
     */
    public int size(){
        return nItems;
    }

    public static void main(String[] args) {
        Queue queue = new Queue(5);

        queue.insert(10);
        queue.insert(20);
        queue.insert(30);
        queue.insert(40);

        queue.remove();
        queue.remove();
        queue.remove();

        queue.insert(50);
        queue.insert(60);
        queue.insert(70);
        queue.insert(80);
        queue.insert(90);
        queue.insert(95);

        System.out.println(queue.size());

        while (!queue.isEmpty()){
            long n = queue.remove();
            System.out.print(n +" ");
        }
        System.out.println("");

        System.out.println(queue.size());

    }

}

  

/**
 * 优先级队列
 * Create by Administrator
 * 2018/6/11 0011
 * 下午 4:15
 **/
public class PriorityQ {

    private int maxSize;

    private long[] queArray;

    private int nItem;

    public PriorityQ(int maxSize) {
        this.maxSize = maxSize;
        this.queArray = new long[maxSize];
        this.nItem = 0;
    }

    public void inset(int item){
        int j;
        if(nItem == 0){
            queArray[nItem++] = item;
        }else{
            for(j = nItem-1; j >= 0;j--){
                if(item > queArray[j]){
                    queArray[j+1] = queArray[j];
                }else{
                    break;
                }
            }
            queArray[j+1] = item;
            nItem++;
        }
    }

    public long remve(){
        return queArray[--nItem];
    }

    public long meeMin(){
        return queArray[nItem-1];
    }
    public boolean isEmpty(){
        return (nItem == 0);
    }
    public boolean isFull(){
        return (nItem == maxSize);
    }

    public static void main(String[] args) {
        PriorityQ p = new PriorityQ(5);
        p.inset(30);
        p.inset(50);
        p.inset(10);
        p.inset(20);
        p.inset(30);

        while (!p.isEmpty()){
            long item= p.remve();
            System.out.print(item + " ");
        }
        System.out.println("");
    }
}

  

原文地址:https://www.cnblogs.com/chancy/p/9167729.html