数据结构—处理对列的上溢和下益问题
2015-05-18 15:50
881 查看
对应于算法导论中的P131,重写ENQUEUE和DEQUEUE,使之能够处理队列的上溢和下益
注意:两个假定,队尾指针指示队尾元素在数组中的当前位置的下一个位置,队头指针指示
队头元素在数组中当前元素! 不同的书上可能有不同的定义
#include <iostream> #include <string> using namespace std; #define MaxSize 100 typedef struct queue { int data[MaxSize]; int head,tail; }SqQueue; /*两个假定,队尾指针指示队尾元素在数组中的当前位置的下一个位置,队头指针指示 队头元素在数组中当前元素,所以队满的时候其实是有一个空位的,以区分队空的情况 */ int EnQueue(SqQueue &Q,int x) { if((Q.tail)%MaxSize==Q.head) //入队时先将tail+1再插入,所以此处满了 { cout<<"队满"; exit(0); } Q.data[Q.tail]=x; Q.tail=(Q.tail+1)%MaxSize; return 1; } int DeQueue(SqQueue &Q,int x) //x存放出栈的元素 { if(Q.tail==Q.head)) { cout<<"栈空!"; exit(0); } Q.head=(Q.head+1)%MaxSize; x=Q.data[Q.head]; return 1; }
注意:两个假定,队尾指针指示队尾元素在数组中的当前位置的下一个位置,队头指针指示
队头元素在数组中当前元素! 不同的书上可能有不同的定义
相关文章推荐
- 【数据结构】一个关于用快慢指针处理循环链表的有趣小问题
- 【数据结构】一些海量数据处理问题
- 重复提交、重复刷新、防止后退的问题以及处理方式
- apt-get依赖库版本过高问题的解决(如何处理libqt4-dev在ubuntu的安装问题)
- Linux下getchar()输入缓冲区stdin问题分析与处理
- 抖动算法处理 RGBA4444 产生的色阶问题
- hdoj 2203 亲和串(字符串处理问题(strstr函数的巧用))
- c#数据结构之最大子数组问题(分治法)
- table xxxx is full 报警问题处理
- tsm 定义dr unknown问题处理
- CSU 1811 Tree Intersection 处理树问题的一个重要思路!!!
- logstash处理时区问题
- fastJson来处理json数据,相同数据不显示(回环引用问题)
- IIS处理并发请求时出现的问题及解决
- 如何处理Cisco Catalyst 3500交换机CPU使用率过高的问题
- iOS开发之---静态库的编译以及相关问题的处理
- Tomcat设置默认访问项目及项目重复加载问题处理
- 开发错误处理记录(framework框架版本导致的引用问题)
- Netty5用户手册之五:netty中流数据的传输处理问题
- sqlite3 jdbc、c接口、python接口处理中文时遇到的问题及其解决方法