0
点赞
收藏
分享

微信扫一扫

【408数据结构与算法】—队列的顺序表示和实现(十三)


【408数据结构与算法】—队列的顺序表示和实现(十三)

  • 🎬 博客主页:王同学要努力
  • 🎥 本文由 王同学要努力 原创
  • 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📆 越努力 越幸运,愿我们都能在看不见的日子里闪闪发光!✨

一、队列的顺序表示和实现

队列的物理存储可以用顺序存储结构,也可以使用链式存储结构,相应的,队列的存储方式也分为两种,即顺序队列和链式队列

队列的顺序表示—用一组数组base[MAXQSIZE]

【408数据结构与算法】—队列的顺序表示和实现(十三)_算法


【408数据结构与算法】—队列的顺序表示和实现(十三)_循环队列_02


【408数据结构与算法】—队列的顺序表示和实现(十三)_循环队列_03

📢📢解决假上溢的办法

将队中元素依次向队头方向移动

缺点:浪费时间,每移动一次,队中的元素都要移动

将队空间设想成一个循坏的表,即分配给队列的m个存储单元可以循坏使用,当rear为maxqsize时,若向量的开始端空着,又可以从头使用空着的空间,当front为maxqsize时,也是一样。

【408数据结构与算法】—队列的顺序表示和实现(十三)_算法_04

解决假上溢的方法—引入循环队列

【408数据结构与算法】—队列的顺序表示和实现(十三)_数据结构_05

【408数据结构与算法】—队列的顺序表示和实现(十三)_算法_06


解决方案:

  • 另外设一盒标志以区别队空,队满
  • 另设一个变量,记录元素个数
  • 少用一个元素空间

循环队列解决队满时判断方法—少用一个元素空间

【408数据结构与算法】—队列的顺序表示和实现(十三)_数据结构_07

二、队列的初始化

【408数据结构与算法】—队列的顺序表示和实现(十三)_javascript_08

三、求队列的长度

【408数据结构与算法】—队列的顺序表示和实现(十三)_算法_09

四、循环队列的操作—循环队列入队

【408数据结构与算法】—队列的顺序表示和实现(十三)_数据结构_10

五、循环队列的操作—循环队列出队

【408数据结构与算法】—队列的顺序表示和实现(十三)_算法_11

六、取队头元素

【408数据结构与算法】—队列的顺序表示和实现(十三)_循环队列_12


举报

相关推荐

数据结构(顺序队列)

0 条评论