首页 > 其他分享 >数据结构基础第4讲

数据结构基础第4讲

时间:2024-04-23 22:56:27浏览次数:24  
标签:QS 队列 元素 基础 len 考点 数据结构 指针

数据结构基础第4讲 队列

内容

img

考点一: 队列概念

代码不考

1.队列的定义

img

img

考点二:顺序队列的定义

img

考点三顺序队列的性质与操作

4要素:

img

考点四:循环队列的定义

由于顺序队列会存在假溢出问题,引入循环队列。

假溢出:

img

描述:

img

考点五:循环队列的操作

  1. 判断空满:

    img

  2. 性质:
    考频75%
    img

    元素个数求法:

    1. rear < front

      img

      f-r 为空的个数

      元素个数为:

      \([n-(f-r)] \% n = (r-f+n) \% n\)

    2. rear > front

      img

      \(r-f\) 为元素个数

      元素个数为:

      \((r-f)\%n\)

    为了形式统一将情况二写成:

    \(\begin{matrix} (r-f)\%n &=(r-f) \%n + n \%n \\ &=(r-f+n)\%n \end{matrix}\)

  3. 环形队列实现的三种方式

    1. 队首指针始终指向队头元素,队尾指针始终指向队尾元素的下一个位置

      img

      img

    2. 队首指针始终指向队头元素的前一个位置,队尾指针始终指向队尾元素

      img

      img

    3. 队首指针始终指向队头元素,队尾指针始终指向队尾元素[需要加入len表示元素个数]

      img

      • 初始化 f=0;rear = MaxSize-1

      img

      空 ;\((r+1)\%==front\)

      满:\((r+1)\%MaxSize\)

    例题4:

    img

    例题5:

    img

    img

    属于第二种情况

    • 元素个数:\(len=(rear-front+QueueSize)\%QueueSize\)
    • 由于
    • \[len=QueueSize-1<QueueSize \]

    • 所以
    • \[len\%QueueSize=len \]

    • 将上式子带入元素个数得
    • \[\begin{align} len\%QS &= (r-f+QS)\%QS \\ &= r\%QS-f\%QS+QS\%QS \end{align} \]

    • \[\begin{align}f\%QS&=f\\&=(r-len+QS)\%QS\end{align} \]

若题目未明确是第几种,按第一或第二考虑

考点七:链队列的定义

img

  1. 入队出队:

img

  1. 链队的4要素:

img

  1. 实现队列的方式

    • 分别给出头尾指针 最佳方案
    • 单链表:带尾指针的单循环链表
    • 双链表:给头指针或尾指针的双循环链表

考点八:链队列的操作

  1. 初始化

    img

  2. 销毁

    img

  3. 判空

    img

  4. 进队

    考虑情况:

    • 原队列为空
    • 原队列非空

    img

  5. 出队

    考虑情况:

    • 原队列为空
    • 原队列只有一格节点
    • 其他情况

    img

    \(\divideontimes\)不管啥题就选 队首/队尾均可以

考点九:双端队列

输出受限:

img

输入受限:

img

标签:QS,队列,元素,基础,len,考点,数据结构,指针
From: https://www.cnblogs.com/JUANFENHUI/p/18151449

相关文章

  • 数据结构基础第6讲
    数据结构基础第6讲图及其应用1-2个选择考点一:图的基本概念1.图基本概念连通图:极大连通子图-连通分量:极小连通子图-生成树:强连通顶点给定n个顶点,要保证图在任何情况下连通需要最小边数:1.生成树,边(n-1)2.完全无向图\(\frac{(n-1)\timesn}{2}\)3.\(\left......
  • 数据结构基础第5讲
    数据结构基础第5讲树和二叉树本章内容:考点一:基本术语1.数的引入2.树的定义层次,分支,一对多。互不相交的含义:3.结点的分类结点的度:4.结点的关系树的深度:树中结点最大高度称为树的高度(或树的深度)行兄弟结点:在同一层但不是兄弟的结点路径长度:等于路径......
  • 数据结构的练习day2(未完待续)
    数据结构线性结构之单向循环链表的基本操作/***********************************************************************************************************设计单向循环链表的接口****Copyright(c)[email protected]......
  • 数据结构:单循环链表的创建插入与删除
    数据结构:单循环链表的创建·插入·删除/***@filename: 单循环链表的创建·插入·删除*@brief实现单循环链表的创建删除插入的功能*@[email protected]*@date2024/04/23*@version1.0:版本*@notenoone*CopyRight(c)2023-2024liuliu@......
  • 【基础】Flink -- State 状态总结
    【基础】Flink--StateFlink--StateFlink中的状态有状态算子状态的分类按键分区状态KeyedState支持的结构类型值状态ValueState列表状态ListState映射状态MapState规约状态ReducingState聚合状态AggregatingState状态的生存时间算子状态OperatorState算子......
  • python 基础习题2--字符串切片技术
    1. 有如下字符串str='123456789'字符串切片技术,例如,返回输出从第三个开始到第六个的字符(不包含)即得到:345利用字符串切片技术,代码可以这么写:print(str[2:5])如果想返回如下八行结果,利用字符串切片技术,如何编写代码?12345678912345678134534567892412345678912345678......
  • python 基础习题1--基础语法
    1.书写代码,输出结果为: 答案:print("Hello,Python!")ViewCode 2. ......
  • PROFINET IO应用层数据结构
    从远古时代讲起在300/400的年代,SIMATIC模块要提供一些特定的信息的方法是将特定信息保存到SSL里,通过查询的方法获得。SSL中文名叫做系统状态列表,帮助里面有些时候有写成SZL,不过都是一样的东西。在Step7中使用SFC51(RDSYSST),SFB54(RALRM)来获取SSL和报告系统错误,具体的record......
  • JS基础(二)运算符、流程控制语句、数组对象、JSON对象、Date对象、Math对象、Function对
    一运算符<script>//算数运算符//(1)自加运算varx=10;//x=x+1;//x+=2;varret=x++;//先赋值再计算:x+=1//varret=++x;//先计算再赋值:x+=1console.log(x)......
  • 【数据结构】链表(单链表实现+详解+原码)
    目录【数据结构】链表(单链表实现+详解+原码)【数据结构】链表(单链表实现+详解+原码)代码:#include<math.h>usingnamespacestd;typedefstructnode{ intdata; structnode*next;}NODE;intmain(void){ NODEa,b,c; NODE*p; a.data=1; a.next=&b;......