一、假溢出

当元素被插入到数组中下标最大的位置上之后,队列的空间就用尽了,尽管此时数组的低端还有空闲空间,这样的情况被称为假溢出。

这里给出天勤数据结构当中的概念解释

解决这个问题的方案就是使用循环队列

二、循环队列

#define maxSize 5typedef struct{int data[maxSize];int front;int rear;
}Queue;//初始化循环队列
void initQueue(Queue &qu){qu.front=qu.rear=0;
}//判断队列是否为空,返回1为空,否则返回0
int isQueueEmpty(Queue qu){if (qu.front==qu.rear)return 1;elsereturn 0;
}//进队
int enQueue(Queue &qu, int x){if ((qu.rear+1)%maxSize==qu.front)return 0;qu.rear=(qu.rear+1)%maxSize;qu.data[qu.rear]=x;return 1;
}//出队
int deQueue(Queue &qu, int &x){if (qu.front==qu.rear)return 0;qu.front=(qu.front+1)%maxSize;x=qu.data[qu.front];return 1;
}

《天勤数据结构》笔记——假溢出和循环队列基本操作的实现(C/C++)相关推荐

  1. 解决顺序表实现队列的假溢出的循环队列

    循环队列的参考视频:https://www.bilibili.com/video/BV1nJ411V7bd?p=60 问题:什么是顺序队列的假溢出? 从队首倒到队尾完全占用了分配的空间,是溢出.相反, ...

  2. 数据结构笔记(十)-- 循环队列

    队列的顺序表示和实现 一.循环队列概述 循环队列 是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列. 队头指针(front) 指向队列的队头元素. 队尾指针(rear) 指向队 ...

  3. 循环队列基本操作(解决队列假溢出)

    循环队列

  4. 天勤数据结构笔记——第六章 树与二叉树(代码)

    二叉树的链式存储结构 typedef struct BTNode{char data;struct BTNode *lchild;struct BTNode *rchild; }BTNode; 先序遍 ...

  5. 【数据结构笔记】3.栈和队列

    文章目录 第3章 栈和队列 3.1 栈 3.1.1 栈的基本概念 1.栈的定义 2.栈的基本操作 3.1.2 栈的顺序存储结构 1.顺序栈的实现 2.顺序栈的基本运算 3.共享栈 3.1.3 栈的链式 ...

  6. 【笔记 】栈底层 循环队列的处理 链栈 链队列

    栈 队列 解决"假溢出"问题的方法: 采用循环队列方式:将数组的头尾看作是相邻的元素, 即将元素data[0]看作是data[maxlen-1]的下一个元素.如图所示. 因此,插入 ...

  7. 三星手机电池循环清零代码_数据结构(C语言)-循环队列基本操作

    队列是一种先进先出(first in first out,FIFO)的线性表,是一种常用的数据结构. 它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列 ...

  8. 2021 - 9 -下旬 数据结构- 线性表 -双端循环队列 - java实现

    //循环双端队列:Circle Double Ended Queue //本质是对动态数组的优化 //队头队尾都可以添加或删除元素 //相比于普通循环队列需要注意的点是在队头插入元素时的对front前 ...

  9. 20200120 数据结构和算法之 数组循环队列的实现

    数组循环队列针对数据量不大的情况下使用,可以快速地实现元素的入队和出队.入队和出队遵循先进先出(FIFO)的原则.结构体组成如下: typedef int datatype; typedef stru ...

  10. 【数据结构与算法 2】循环队列

    一.队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表. 进行插入操作的端称为队尾,进 ...

最新文章

  1. 明明白白学C#0.1.2 什么是编程语言
  2. 第5章 批量主机扫描 nmap、ncat
  3. docker学习笔记(一)docker入门
  4. Appium+Robotframework实现Android应用的自动化测试-2:Windows中启动Appium和模拟器
  5. 天梯赛模拟 链表去重 (25 分)
  6. linux部署jar项目报错_Spring boot项目部署linux系统tomcat报错解决办法
  7. OSMeteorTranslationAPI(百度,有道)对比
  8. Java基础学习总结(171)——CountDownLatch 使用总结
  9. 多模态综述 | 一文了解Language-Vision预训练最新进展和新领域
  10. 2017第121届中国进出口商品交易会(广交会)-第三期会刊(参展商名录)
  11. 数据分析(2)——假设检验的详细原理步骤
  12. windows提示“为了对电脑进行保护,已经阻止此应用”的解决方案 mmc.exe
  13. cookie 、localStorage 和 sessionStorage 区别
  14. CSS3---移动端苹果安卓适配
  15. 通过阿里P9代考这件事,聊聊职级
  16. 深度揭秘 Promise 微任务和执行过程
  17. ElasticSearch学习2_Java version:1.7.0_51 suffers from critical bug及ES对JDK版本要求
  18. 三步教你制作龙卷风迁徙地图
  19. 学了php能做什么工作吗,学会ps能做什么工作
  20. Win10 64位下GPU版本MXNet+Tensorflow 1.3.0的安装

热门文章

  1. 你相信这是XP经典桌面拍摄地现在的模样吗?
  2. 教你成为质量管理高手GJB
  3. 基于Docker swarm 集群搭建SSR 学习
  4. 基于Ymodem协议的IAP上位机(C#)
  5. Servlet面试题整理
  6. 日记html模板,【精选】初二日记模板集锦7篇
  7. 阿里巴巴优酷视频增强和超分辨率挑战赛-持续更新
  8. sklearn机器学习之分类预测算法应用
  9. 广东IPTV机顶盒安装第三方应用
  10. MergeSort(合并排序)