c++数组实现循环队列
来源:互联网 发布:西南民族大学知乎 编辑:程序博客网 时间:2024/06/05 02:30
像栈一样,队列(queue)也是表。然而,使用队列时插入在一端进行而删除则在另一端进行,也就是先进先出(FIFO)。队列的基本操作是EnQueue(入队),它是在表的末端(叫做队尾(rear))插入一个元素;还有DeQueue(出队),它是删除(或返回)在表的开头(叫做队头(front))的元素。
可用具有N个元素的数组Q实现一个队列,front和rear分别表示队首和队尾,N表示数组的大小即队列的容量
初始状态:front=rear=0
如果反复对某个元素执行入队和出队操作,N次后,front=rear=N,此时向队列插入一个元素,就会发生数组越界错误,而此时队列中实际上没有元素,为了避免这个问题,令front和rear的下标在队列的末尾绕回,即把它看做“循环数组”可从Q[0]到Q[N-1],然后再回到Q[0]
计算队列种元素个数的公式:(N-front+rear)%N
注意一种情况:向队列插入N个对象,而不进行删除操作,用公式计算出队列的大小竟然为0,为了避免,可以规定Q最多存放N-1个对象。
同样,队列也可以由链表或数组实现,特点分析如下:(时空矛盾)
链表:不需要设定空间大小,也不会浪费空间;插入或删除时需要动态分配或删除内存,比较耗时;不支持随机存取;
数组:需要预知需要空间的大小,会造成空间浪费或不够用;插入或删除不需要动态分配或删除内存,耗时很小;支持随机存取。
另外,队列又有链式队列和循环队列两种。本文用数组实现的循环队列(当数组空间够大时,链式队列和循环队列是一样的)。
1 0
- C 数组实现 循环队列
- 静态数组实现循环队列 c语言
- C语言数组实现循环队列
- 数组实现循环队列
- 数组实现循环队列
- 循环数组实现队列
- 循环队列--数组实现
- 数组实现循环队列
- 数组实现循环队列
- 数组实现循环队列
- 队列----循环数组实现队列
- 用数组实现循环队列(C实现)
- C语言实现使用静态数组实现循环队列
- C语言实现使用动态数组实现循环队列
- 循环队列实现(C++)
- C 循环队列实现
- 循环队列 c 实现!!!!
- 【C++】实现循环队列
- sql 统计我的消息列表
- iOS开发本地缓存(数据离线缓存、读取、释放)
- 第8章java 集合
- 资源的访问控制列表(ACL)配置或加密设置,无权访问的问题。
- 宏定义的黑魔法 - 宏菜鸟起飞手册
- c++数组实现循环队列
- 慕课—R语言之数据可视化—学习笔记 3.6ggplot2绘图系统(中)
- 使用HttpClient实现一个简单爬虫,抓取煎蛋妹子图
- 数据表分割策略和实现
- 第9章 泛型
- canvas之接口详解
- Convert.ToInt32、(int)和int.Parse三者的区别:
- 安装memcached中遇到的几个问题
- 滚动条消息总结