• 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("");
        }
    }
    

      

  • 相关阅读:
    Http和Socket连接区别
    解决TCP网络传输“粘包”问题
    c# 获取MAC IP TCP列表
    《你不常用的c#之四》:Array的小抽屉ArraySegment
    《你不常用的c#之三》:Action 之怪状
    《你不常用的c#之二》:略谈GCHandle
    c#中var关键字用法
    Combotree--别样的构建层级json字符串
    一周代码秀之[11.18~11.24 linq2xml面向对象]
    这个季节的这些时候
  • 原文地址:https://www.cnblogs.com/chancy/p/9167729.html
Copyright © 2020-2023  润新知