博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
循环队列(数组实现)
阅读量:6121 次
发布时间:2019-06-21

本文共 1453 字,大约阅读时间需要 4 分钟。

 

 

 

1 #include 
2 #include
3 4 #define false 0 5 #define true 1 6 7 typedef int ElementType; 8 typedef int Position; 9 typedef int bool;10 typedef struct QNode *PtrToQNode;11 struct QNode12 {13 ElementType *Data;14 Position Front,Rear;15 int MaxSize;16 };17 typedef PtrToQNode Queue;18 19 Queue CreateQueue(int MaxSize); //创建一个最大长度为MaxSize的空队列20 bool IsFull(Queue Q); //判断队列是否已满21 bool IsEmpty(Queue Q); //判断队列是否为空22 bool AddQ(Queue Q, ElementType X); //入队23 ElementType DeleteQ(Queue Q); //出队24 25 26 27 Queue CreateQueue(int MaxSize)28 {29 Queue Q = (Queue)malloc(sizeof(struct QNode));30 Q->Data = (ElementType *)malloc(MaxSize*sizeof(ElementType));31 Q->Front = Q->Rear = 0;32 Q->MaxSize = MaxSize;33 return Q;34 }35 36 bool IsFull(Queue Q)37 {38 return ((Q->Rear+1) % (Q->MaxSize)) == Q->Front;39 }40 41 bool IsEmpty(Queue Q)42 {43 return Q->Front == Q->Rear;44 }45 46 bool AddQ(Queue Q, ElementType X)47 {48 if(IsFull(Q))49 {50 printf("队列已满,无法入队!\n");51 return false;52 }53 Q->Rear = (Q->Rear+1)%(Q->MaxSize);54 Q->Data[Q->Rear] = X;55 return true;56 }57 58 ElementType DeleteQ(Queue Q)59 {60 if(IsEmpty(Q))61 {62 printf("队列为空,无法出队!\n");63 return false;64 }65 Q->Front = (Q->Front+1)%(Q->MaxSize);66 return Q->Data[Q->Front];67 }

 

转载于:https://www.cnblogs.com/FengZeng666/p/9447127.html

你可能感兴趣的文章
虚拟机VMware 9安装苹果MAC OSX 10.8图文教程
查看>>
POJ3694 Network
查看>>
微信小程序开发-框架
查看>>
redo、undo、binlog的区别
查看>>
DropDownList 控制日期控件显示格式
查看>>
RecycleView设置顶部分割线(记录一个坑)
查看>>
【设计模式系列】单例模式的7种写法
查看>>
汉字转拼音 (转)
查看>>
Machine Learning Techniques -6-Support Vector Regression
查看>>
会计基础_001
查看>>
Cordova 开发环境搭建及创建第一个app
查看>>
ajax请求拿到多条数据拼接显示在页面中
查看>>
小程序: 查看正在写的页面
查看>>
dedecms生成文档数据库崩溃 mysql daemon failed to start
查看>>
Linux的50个基本命令
查看>>
Objective-C中创建单例方法的步骤
查看>>
Codeforces 520B:Two Buttons(思维,好题)
查看>>
Jenkins持续集成环境部署
查看>>
emoji等表情符号存mysql的方法
查看>>
检查磁盘利用率并且定期发送告警邮件
查看>>