《天勤数据结构》笔记——假溢出和循环队列基本操作的实现(C/C++)
一、假溢出
当元素被插入到数组中下标最大的位置上之后,队列的空间就用尽了,尽管此时数组的低端还有空闲空间,这样的情况被称为假溢出。
这里给出天勤数据结构当中的概念解释
解决这个问题的方案就是使用循环队列
二、循环队列
#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++)相关推荐
- 解决顺序表实现队列的假溢出的循环队列
循环队列的参考视频:https://www.bilibili.com/video/BV1nJ411V7bd?p=60 问题:什么是顺序队列的假溢出? 从队首倒到队尾完全占用了分配的空间,是溢出.相反, ...
- 数据结构笔记(十)-- 循环队列
队列的顺序表示和实现 一.循环队列概述 循环队列 是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列. 队头指针(front) 指向队列的队头元素. 队尾指针(rear) 指向队 ...
- 循环队列基本操作(解决队列假溢出)
循环队列
- 天勤数据结构笔记——第六章 树与二叉树(代码)
二叉树的链式存储结构 typedef struct BTNode{char data;struct BTNode *lchild;struct BTNode *rchild; }BTNode; 先序遍 ...
- 【数据结构笔记】3.栈和队列
文章目录 第3章 栈和队列 3.1 栈 3.1.1 栈的基本概念 1.栈的定义 2.栈的基本操作 3.1.2 栈的顺序存储结构 1.顺序栈的实现 2.顺序栈的基本运算 3.共享栈 3.1.3 栈的链式 ...
- 【笔记 】栈底层 循环队列的处理 链栈 链队列
栈 队列 解决"假溢出"问题的方法: 采用循环队列方式:将数组的头尾看作是相邻的元素, 即将元素data[0]看作是data[maxlen-1]的下一个元素.如图所示. 因此,插入 ...
- 三星手机电池循环清零代码_数据结构(C语言)-循环队列基本操作
队列是一种先进先出(first in first out,FIFO)的线性表,是一种常用的数据结构. 它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列 ...
- 2021 - 9 -下旬 数据结构- 线性表 -双端循环队列 - java实现
//循环双端队列:Circle Double Ended Queue //本质是对动态数组的优化 //队头队尾都可以添加或删除元素 //相比于普通循环队列需要注意的点是在队头插入元素时的对front前 ...
- 20200120 数据结构和算法之 数组循环队列的实现
数组循环队列针对数据量不大的情况下使用,可以快速地实现元素的入队和出队.入队和出队遵循先进先出(FIFO)的原则.结构体组成如下: typedef int datatype; typedef stru ...
- 【数据结构与算法 2】循环队列
一.队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表. 进行插入操作的端称为队尾,进 ...
最新文章
- 明明白白学C#0.1.2 什么是编程语言
- 第5章 批量主机扫描 nmap、ncat
- docker学习笔记(一)docker入门
- Appium+Robotframework实现Android应用的自动化测试-2:Windows中启动Appium和模拟器
- 天梯赛模拟 链表去重 (25 分)
- linux部署jar项目报错_Spring boot项目部署linux系统tomcat报错解决办法
- OSMeteorTranslationAPI(百度,有道)对比
- Java基础学习总结(171)——CountDownLatch 使用总结
- 多模态综述 | 一文了解Language-Vision预训练最新进展和新领域
- 2017第121届中国进出口商品交易会(广交会)-第三期会刊(参展商名录)
- 数据分析(2)——假设检验的详细原理步骤
- windows提示“为了对电脑进行保护,已经阻止此应用”的解决方案 mmc.exe
- cookie 、localStorage 和 sessionStorage 区别
- CSS3---移动端苹果安卓适配
- 通过阿里P9代考这件事,聊聊职级
- 深度揭秘 Promise 微任务和执行过程
- ElasticSearch学习2_Java version:1.7.0_51 suffers from critical bug及ES对JDK版本要求
- 三步教你制作龙卷风迁徙地图
- 学了php能做什么工作吗,学会ps能做什么工作
- Win10 64位下GPU版本MXNet+Tensorflow 1.3.0的安装