• 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 
    已空,无法出队列
  • 相关阅读:
    委托和事件
    Entity Framework应用:导航属性
    Entity Framework应用:根据实体的EntityState状态实现增删改查
    Entity Framework应用:使用EF的DataBase First模式实现数据库的增删改查
    Entity Framework应用:EntityFramework DataBase First模式
    dapper支持操作函数和事物
    单元测试
    IOC容器:Unity
    MVC教程九:异常过滤器
    MVC教程八:缓存过滤器
  • 原文地址:https://www.cnblogs.com/karrya/p/11206438.html
Copyright © 2020-2023  润新知