石油大学 队列操作(链队列+顺序队列)

上传人:第*** 文档编号:32826416 上传时间:2018-02-12 格式:DOC 页数:5 大小:27.50KB
返回 下载 相关 举报
石油大学 队列操作(链队列+顺序队列)_第1页
第1页 / 共5页
石油大学 队列操作(链队列+顺序队列)_第2页
第2页 / 共5页
石油大学 队列操作(链队列+顺序队列)_第3页
第3页 / 共5页
石油大学 队列操作(链队列+顺序队列)_第4页
第4页 / 共5页
石油大学 队列操作(链队列+顺序队列)_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《石油大学 队列操作(链队列+顺序队列)》由会员分享,可在线阅读,更多相关《石油大学 队列操作(链队列+顺序队列)(5页珍藏版)》请在金锄头文库上搜索。

1、/进队出队操作时自动判断队空队满 #include#include#define MAXSIZE 1000 typedef struct/顺序队列定义int dataMAXSIZE;/队员的存储空间int front,rear;/队头、队尾指针 SeQueue;SeQueue *sq;int createsq()/顺序队列的建立int n,x,i;sq=(SeQueue*)malloc(sizeof(SeQueue);sq-front=sq-rear=-1;printf(请输入要建立的顺序队列元素个数:);scanf(%d,printf(请输入数据元素:);for(i=0; idatai=x;

2、sq-rear+;return 0;int putsq()/顺序队列的输出int i;printf(顺序队列输出为:);for(i=sq-front+1; irear; i+)printf(%d ,sq-datai);printf(n);return 0;int emptysq()/判断队空(顺序队列)if(sq-front=sq-rear)return 1;elsereturn 0;int fullsq()/判断队满(顺序队列) if(sq-rear+1=MAXSIZE)return 1;elsereturn 0;int insq()/入队(顺序队列)int x;if(fullsq()pri

3、ntf(队满!n);elseprintf(请输入入队元素:);scanf(%d,sq-data+sq-rear=x;return 0;int outsq()/出队(顺序队列)int x;if(emptysq()printf(队空!n);elsex=sq-data+sq-front;printf(队头元素%d 已出队n,x);return 0;typedef struct node/链队列结点定义int data;struct node *next; QNode;typedef struct/将链队列头尾指针封装在一起QNode *front;QNode *rear; LQueue;LQueue

4、 *q;int createlq()/创建带头节点的链队列int i,n; QNode *p;q=(LQueue*)malloc(sizeof(LQueue);p=(QNode*)malloc(sizeof(QNode);q-front=q-rear=p;printf(请输入要建立的链栈元素个数:);scanf(%d,printf(请输入数据:);for(i=0; idata);q-rear-next=p;q-rear=p;q-rear-next=NULL;return 0;int putlq()/链队列的输出QNode *p;p=q-front-next;printf(顺序队列输出为:);w

5、hile(p!=NULL)printf(%d ,p-data);p=p-next;printf(n);return 0;int emptylq()/判断队空(链队列)if(q-front=q-rear)return 1;elsereturn 0;int inlq()/入队(链队列)int x;QNode *p;p=(QNode*)malloc(sizeof(QNode);printf(请输入入队元素:);scanf(%d,p-next=NULL;q-rear-next=p;q-rear=p;return 0;int outlq()/出队(链队列)QNode *p;if(emptylq()pri

6、ntf(队空!n);else if(q-front-next=NULL)printf(队空!n);q-rear=q-front;elsep=q-front-next;q-front-next=p-next;printf(队头元素%d 已出队n,p-data);free(p);return 0;int main()int n;createsq();putsq();printf(*顺序队列操作*n0.退出 1.进队 2.出队n*n);printf(请输入要执行的操作序号:);scanf(%d,while(n!=0)if(n=1)insq();putsq();if(n=2)outsq(); putsq();printf(请输入要执行的操作序号:);scanf(%d,createlq();putlq();printf(*链队列操作*n0.退出 1.进队 2.出队n*n);printf(请输入要执行的操作序号:);scanf(%d,while(n!=0)if(n=1)inlq();putlq();if(n=2)outlq();putlq();printf(请输入要执行的操作序号:);scanf(%d,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号