美文网首页
数据结构-5.队列-顺序队列

数据结构-5.队列-顺序队列

作者: 爱吃火锅的金先生 | 来源:发表于2020-06-23 05:00 被阅读0次

1. 队列是一个有序列表,可以用数组(顺序存储)或链表来实现(链式存储)

2. 遵循先入先出的原则,即先存入队列的数据,要先被取出,后存入队列的数据要后取出

front 是队列首的指针,rear 是队列尾的指针,红色部分表示加入的元素

第二幅图中,随着元素的加入,尾指针依次向后移动,首指针不动

第三幅图中,随着元素的取出,尾指针不动,首指针向后移动

3. 使用数组来模拟队列

用 maxSize 来表示队列的最大容量

使用 front 和 rear 来记录队列前后端的下标,front 随着数据输出而改变,rear 随着数据输入而改变

代码实现:

创建一个类 提供构造方法,用数组创建队列 判断队列是否已经满了 判断队列是否是空的 将数据加入队列,如果队列已经满了,添加失败,如果有空位,通过 rear 尾部指针来添加数据 从队列中得到数据,如果队列是空的,抛出异常,并终止该段代码 显示队列中的数据,注释部分位显示所有的数据,没有添加数据的部分会显示 0 显示当前队列首部的数据,如果队列是空的,抛出异常 验证一下可用性

(1)虽然已经完成,但存在一个重要的问题,即当前数组如果被装满,即使取出数据,也无法再次向其中添加新数据,数组中的每个空间只能使用一次,没有复用性,这个问题也叫顺序队列的“假溢出”问题

(2)可以使用取模算法来将其改造成环形队列,即当前队列满了之后,取出数据,首部向后移,再向尾部添加数据时,会添加到原来的首部,整个队列构成了一个类似环的结构

相关文章

  • 【数据结构】【C#】008-队列:👬👬顺序队列(循环队列)

    C#数据结构:顺序队列 1、 顺序队列的假溢出现象 队列的一种顺序存储称为顺序队列。与顺序栈类似,在队列的顺序存储...

  • 数据结构-5.队列-顺序队列

    1. 队列是一个有序列表,可以用数组(顺序存储)或链表来实现(链式存储) 2. 遵循先入先出的原则,即先存入队列的...

  • 数据结构之队列的链式存储结构

    之前写了队列的顺序存储结构,队列的定义及操作见 数据结构之队列的顺序存储结构 队列的链式存储结构与操作实现 队列接...

  • 【JavaScript实现数据结构系列】队列

    队列是一种先进先出(FIFO)的数据结构,其实现方式主要分两种:顺序队列和链式队列,本文将给出顺序队列的JavaS...

  • 队列

    顺序存储结构队列 循环队列 链队列

  • 0x07队列

    a、顺序队列 b、链式队列

  • 数据结构

    数据结构 数据结构概念 顺序表 链表 队列 栈 二叉树 常用排序算法

  • 常见的数据结构

    常见的数据结构有: 数组 链表单链表、双向链表、循环链表、双向循环链表、静态链表 栈顺序栈、链式栈 队列普通队列、...

  • Java数组实现循环队列

    Java数组实现循环队列 上一节(Java实现队列——顺序队列、链式队列)我们使用数组实现了顺序队列,但是在tai...

  • 数据结构-5.队列-循环队列

    使用循环队列来解决“假溢出”问题: 其实,并没有真正的环,只是用环作为类比(用长方形也可以得出同样的结论) 思路一...

网友评论

      本文标题:数据结构-5.队列-顺序队列

      本文链接:https://www.haomeiwen.com/subject/rapvtktx.html