当前位置: 首页 > news >正文

循环队列知识点及习题

目录

一、知识点

二、练习题


一、知识点

1队列是操作受限的线性表。特性是先进先出,后进后出,比如一个队列的入队顺序是1,2,3,4,那么出队的输出顺序就是1,2,3,4。

2循环队列就是一个环状的空间,有队首指针front和队尾指针rear,按照顺时针的顺序出入队。

当有元素入队,rear指针进1,front指针不变;当有元素出队,rear指针不变,front指针进1。当队里没有元素,front==rear。

3区分队空还是队满的方法

牺牲一个单元。约定队首指针在队尾指针的下一位置作为队满标志

那么(Q.rear+1)%Maxsize==Q.front

%Maxsize这里取模的原因是这是一个循环队列,rear+1大于M的话理解为新的循环

二、练习题

1已知循环队列的存储空间为数组A[21],front指向队首元素的前一个位置,rear指向队尾元素,假设当前front和rear的值分别为8和3,求该队列的长度。

思路:利用公式(rear-front+Maxsize)%Maxsize

(3-8+21)%21=16

2若用数组A[0...5]实现循环队列,且当前rear和front的值分别为1和5,当从队列中删除一个元素再加入两个元素后,求rear和front的值。

思路:删除元素是出队,front指针进1,rear不变;加入元素是入队,rear指针进1,front不变。

根据题干,rear=1,加入2个元素,rear进2,rear=1+2=3

front=5,删除一个元素,front进1,因为这是循环队列,5后面是0,所以front=0

3假设输入序列为1,2,3,4,5,利用两个队列进行出入队操作,不可能输出的序列是

A. 1,2,3,4,5

B. 5,2,3,4,1

C. 1,2,3,4,5

D. 4,1,5,2,3

思路:排除法来做。设两个队列为Q和S,如下图分配

答案选B

相关文章:

  • 1-8 gitee码云的注册与使用
  • 软件测试之黑盒测试与白盒测试
  • android设置添加设备QR码信息
  • 用大模型学大模型05-线性回归
  • 全面理解-c++中的内存布局
  • visutal studio 2022使用qcustomplot基础教程
  • ROS2 话题通信
  • 算法题(68):路径总和
  • 算法244(力扣136)反转字符串
  • mysql和minio
  • C语言中的文件
  • YOLOV8的学习记录(三) 训练各种模型所使用的数据格式区别
  • Farewell Go,Hello AI:是时候说再见了
  • AWS Fargate 部署流程图及说明
  • 劳力士(Rolex):蚝式恒动(Oyster Perpetual),潜航者(Submariner)和宇宙计型迪通拿(Daytona)中英双语
  • Vue.js 配置 Babel、Webpack 和 ESLint
  • 矩阵碰一碰发视频技术开发全解析,支持OEM
  • 抖去推与超级编导矩阵系统技术深度对比,矩阵系统支持OEM
  • 【Qt】之【Linux】linux下实现开机自启Qt应用程序
  • Golang面试题一
  • 浙江广厦:诚挚道歉,涉事责任人交公安机关
  • 复旦大学艺术馆开馆:以当代视角再看文科文脉
  • 西藏普兰县公安局网安大队向自媒体人宣传网络安全知识
  • 遭车祸罹难的村医遇“身份”难题:镇卫生院否认劳动关系,家属上诉后二审将开庭
  • 中国军网:带你揭开3所新调整组建军队院校的神秘面纱
  • 十年磨一剑!上海科学家首次揭示宿主识别肠道菌群调控免疫新机制