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 
    已空,无法出队列
  • 相关阅读:
    电源锁
    Android的三种网络联接方式
    用tcpdump在手机上抓包
    图片出现波纹的问题
    Android 3.1以后 广播接收器的新机制
    OpenGL坐标
    用Messager进行IPC
    PHP 介绍
    View坐标,MotionEvent坐标, 二者的转换,可视区域
    OpenGL ES
  • 原文地址:https://www.cnblogs.com/karrya/p/11206438.html
Copyright © 2011-2022 走看看