• JAVA顺序队列


    test.java

    public class test{
        public static void main(String[] args) {
            //创建一个队列
            ArrayQueue1 a = new ArrayQueue1();
            a.creatArrayQueue(5);
            System.out.println(a.isEmpty());
            a.addQueue(1);
            a.addQueue(3);
            a.getQueue();
            a.showQueue();
            System.out.println("-------------");
            a.addQueue(5);
            a.addQueue(7);
            a.addQueue(3);
            a.showQueue();
            System.out.println(a.isFull());//此时虽然队列中的有效数字只有4个,不到5个,但是rear指针已经移到了maxSize-1的位置了。
        }
    }

    ArrayQueue1.javapublic class ArrayQueue1    private int maxSize;//最大容量

        private int front;//队列头
        private int rear;//队列尾
        private int arr[];
        //创建队列
            public void creatArrayQueue(int arrMaxSize) {
                maxSize = arrMaxSize;
                arr = new int[maxSize];
                //指向队列前一个位置
                front = -1;//头指针
                rear = -1; //尾指针
            }
            //判断队列是否满
            public boolean isFull() {
                if(rear == maxSize-1) 
                    return true;
                else
                    return false;
            }
            //判断队列是否为空
            public boolean isEmpty() {
                if(front == rear)
                    return true;
                else
                    return false;
            }
            //入队
            public void addQueue(int n) {
                //判断是否已满
                if(isFull() == true)
                {
                    System.out.println("队列已满");
                    return;
                }
                rear++;
                arr[rear] = n;
            }
            //出队
            public int getQueue() {
                //判断队列是否为空
                if(isEmpty() == true) {
                    System.out.println("队列为空");
                    return -1;
                }
                front++;
                return arr[front];
            }
            //显示队列的所有数据
            public void showQueue(){
                if(isEmpty() == true)
                {
                    System.out.println("队列为空");
                    return;
                }
                for(int i = front+1;i <= rear;i++)
                {
                    System.out.println(arr[i]);
                }
            }
    }

    结果:

    true
    3
    -------------
    3
    5
    7
    3
    true

  • 相关阅读:
    什么是原型链
    ThreadLocal
    mongodb用户权限设置
    mongo数据库分片副本集增加访问控制
    YOLO系列梳理(一)YOLOv1YOLOv3
    一份热力图可视化代码使用教程
    ef core An attempt was made to use the context while it is being configured.
    考研经验
    c#委托的定义理解
    上飞机https://zhuzhu12.xyz/link/8YFX1tSR3sy3Wj2S?clash=1
  • 原文地址:https://www.cnblogs.com/lintianxiajun/p/12826177.html
Copyright © 2020-2023  润新知