环形队列中实现队列的基本运算
2016-04-01 20:29
459 查看
代码如下:
#include <iostream> #include <stdlib.h> #define MaxSize 10 using namespace std; typedef char ElemType; typedef struct { ElemType data[MaxSize]; int front,rear; } SqQueue; void InitQueue(SqQueue *q)//初始化队列InitQueue { //q=(SqQueue *)malloc(sizeof(SqQueue)); q->front=q->rear=0; } void DestroyQueue(SqQueue *q)//销毁队列DestroyQueue { free(q); } bool QueueEmpty(SqQueue *q)//判断队列是否为空QueueEmpty { return (q->front==q->rear); } bool enQueue(SqQueue *q,ElemType e)//进队列enQueue { if(<span style="color:#ffff66;background-color: rgb(255, 0, 0);">(q->rear+1)%MaxSize == q->front</span>) return false; else { <span style="color:#ffff66;">q->rear=(q->rear+1)%MaxSize;</span> q->data[q->rear]=e; return true; } } bool deQueue(SqQueue *q,ElemType &e)//出队列deQueue { if(q->front==q->rear) return false; else { <span style="background-color: rgb(255, 153, 0);">q->front=(q->front+1)%MaxSize;</span> e=q->data[q->front]; return true; } } int main() { SqQueue *q = new SqQueue(); char e; InitQueue(q); enQueue(q,'a'); cout<<QueueEmpty(q)<<endl; deQueue(q,e); cout<<e<<endl; DestroyQueue(q); cout<<QueueEmpty(q)<<endl; return 0; }
相关文章推荐
- FZU 2104 Floor problem(floor)
- 文章标题
- 解决mysql密码过期问题
- 验证码
- Swift延迟加载的一种用途
- Hdu 3062 Party
- Swift延迟加载的一种用途
- Swift延迟加载的一种用途
- 蓝桥杯_算法提高_排列数(深度搜索、递归)
- 一个简单的时间获取服务器程序
- java之文件
- FatMouse' Trade
- 搜索二维矩阵
- 【BZOJ1458】士兵占领【最大流】
- 深度学习难在哪里?
- 2016-4-01华为校招实习机试
- ListView,GridView,单选默认选中,单选和多选盖布效果
- WEB服务器2--IIS架构(转)
- 关于XShell远程登录显示乱码问题的解决方案
- 网络:网络基础知识