数据结构-队列的学习

    科技2023-12-17  87

    队列的应用场景和介绍

    队列是一个有序列表,可以用数组或者是链表来实现先入先出示意图

    数组模拟队列

    判断还能够存放数据:rear < maxsize -1;判断队列为空:rear == front加一个元素:rear + 1

    注意:

    rear:指向最后一位元素的下一个位置front:第一个存放数据的位置 //使用数组模拟队列-编写一个ArrayQueue类 class ArrayQueue{ private int maxSize; private int front;//第一个存放数据的位置 private int rear;//指向最后一位元素的下一个位置 private int[] shuzu = new int[maxSize]; //此处由于有的front初始化是0,有的是-1,此处作初始化为0 处理 public ArrayQueue(int maxSize, int front, int rear, int[] shuzu) { this.maxSize = maxSize; this.front = front; this.rear = rear; this.shuzu = shuzu; } /** * 往数队列中添加一个元素,注意需要判断队列是否满 * @param i:需要添加的元素 */ public void addQueue(int i){ if(!isFull()){ shuzu[rear] = i; rear += 1; }else{ System.out.println("队列满了,无法加入数据"); } } /** * 判空 * @return */ public boolean isEmpty(){ return front == rear? true : false; } /** * 判满 * @return */ public boolean isFull(){ return rear >= maxSize? true : false; } /** * 移除队首元素,注意要判断队列空 */ public void removeQueue(){ if(isEmpty()){ System.out.println("队列为空"); }else{ shuzu[front] = 0; front = front + 1; } } public void print(){ for (int i = front;i < rear;i++){ System.out.printf(shuzu[i]+"\t"); } } }

    普通队列的缺陷

    队列使用一次就再也不能用了,有空位却不能存

    Processed: 0.012, SQL: 8