zoukankan      html  css  js  c++  java
  • 5.1、顺序队列(java实现)

    1、实现代码

    public class SeqQueue {
        private final int MaxSize = 8;
        private int rear;  //队尾指针
        private int front;  //队头指针
        private int  size;  //计数器
        private Object seqQueueArray[];
    
        /**
         * 初始化
         */
        public SeqQueue() {
            this.size = 0;
            this.front = 0;
            this.rear = 0;
            seqQueueArray = new Object[MaxSize];
        }
    
        public boolean isEmpty(SeqQueue seqQueue) {
            if (seqQueue.size == 0){
                return true;
            }
            return  false;
        }
    
        public boolean isFull(SeqQueue seqQueue) {
            if (seqQueue.size > 0 && seqQueue.rear == seqQueue.front){
                return true;
            }
            return  false;
        }
    
        public void queueAppend(SeqQueue seqQueue,Object element) {
            if (isFull(seqQueue)){
                System.out.println("已满,无法插入");
                return;
            }
            System.out.println(element+"元素入队列");
            seqQueue.seqQueueArray[seqQueue.rear] = element;
            seqQueue.rear = (seqQueue.rear +1 )%MaxSize;
            seqQueue.size++;
        }
    
        public void queueDelete(SeqQueue seqQueue) {
            if (isEmpty(seqQueue)){
                System.out.println("已空,无法出队列");
                return;
            }
            System.out.print(seqQueue.seqQueueArray[seqQueue.front]+" ");
            seqQueue.front = (seqQueue.front +1)%MaxSize;
            seqQueue.size--;
        }
    
        public void getFront(SeqQueue seqQueue) {
            if (isEmpty(seqQueue)){
                System.out.println("已空,无法获取队列头");
                return;
            }
            System.out.println("队头元素: "+ seqQueue.seqQueueArray[seqQueue.rear]);
        }
    
    
        public static void main(String[] args) {
            SeqQueue seqQueue = new SeqQueue();
            seqQueue.getFront(seqQueue);
            seqQueue.queueDelete(seqQueue);
    
            for (int i = 0; i < 9; i++) {
                seqQueue.queueAppend(seqQueue,i);
            }
            System.out.println("===========");
            seqQueue.queueDelete(seqQueue);
            System.out.println("===========");
    
            int number = seqQueue.size;
            for (int i = 0; i < number; i++) {
                seqQueue.queueDelete(seqQueue);
            }
            System.out.println();
            seqQueue.queueDelete(seqQueue);
    
        }
    }

    2、实现结果

    已空,无法获取队列头
    已空,无法出队列
    0元素入队列
    1元素入队列
    2元素入队列
    3元素入队列
    4元素入队列
    5元素入队列
    6元素入队列
    7元素入队列
    已满,无法插入
    ===========
    0 ===========
    1 2 3 4 5 6 7 
    已空,无法出队列
  • 相关阅读:
    「BZOJ1935」[SHOI2007]园丁的烦恼
    【BZOJ3262】陌上花开
    CDQ分治入门
    「luogu2664」树上游戏
    zoj3995 fail树
    zoj3997网络流+数学
    树状数组区间更新区间查询以及gcd的logn性质
    可修改的区间第K大 BZOJ1901 ZOJ2112
    数论容斥比较快速的做法和二分图判定1
    浙工大新生赛莫队处理+区间DP+KMP+分析题
  • 原文地址:https://www.cnblogs.com/karrya/p/11206438.html
Copyright © 2011-2022 走看看