C语言版的栈和队列的

C语言版的栈和队列的

ID:40547749

大小:182.00 KB

页数:11页

时间:2019-08-04

C语言版的栈和队列的_第1页
C语言版的栈和队列的_第2页
C语言版的栈和队列的_第3页
C语言版的栈和队列的_第4页
C语言版的栈和队列的_第5页
资源描述:

《C语言版的栈和队列的》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验五队列和栈一.队列1.程序名称设计容量分别为4的循环队列,编程实现如下操作,并显示各步骤操作后队列的情况:A、队列初始化;B、1-2-3入队;C、1-2出队;D、4-5-6入队;E、7入队;F、再设计一个容量为num_q的循环队列,编成实现两个循环队列的加。2.程序清单#include#include#include#defineMAXSIZE5//该数值可随着要存储的元素的个数改变而改变#defineERROR-1#defineTURE1#defineFALSE0#defineE

2、XIT0typedefstruct{intqueue[MAXSIZE];intfront;intrear;}Queue;intInit_queue(Queue*q);intEn_queue(Queue*q);intDe_queue(Queue*q);voidPrin_Queue(Queue*q);intSelect();voidmain(){Queueq;第11页共11页Init_queue(&q);inti,n,m;while((m=Select())!=EXIT){switch(m){case1:printf("队列最多可存%d个数。

3、",MAXSIZE-1);printf("请输入要入队的数据个数:");scanf_s("%d",&n);printf("请输入%d个数据:",n);for(i=0;i

4、}intInit_queue(Queue*q){inti=0;q->front=q->rear=0;for(;iqueue[i]=0;returnTURE;}intEn_queue(Queue*q){第11页共11页intx;if((q->rear+1)%MAXSIZE==q->front){printf("队列已满。");returnFALSE;}else{printf("输入数据:");scanf_s("%d",&x);q->rear=(q->rear+1)%MAXSIZE;q->queue[q->rear

5、]=x;returnTURE;}}intDe_queue(Queue*q){if(q->queue==NULL)returnERROR;if(q->front==0&&q->rear==q->front){printf("队列已空。");returnFALSE;}else{q->front=(q->front+1)%MAXSIZE;printf("出队的数据是:%d",q->queue[q->front]);q->queue[q->front]=0;}}voidPrin_Queue(Queue*q){inti;printf("队列为:");f

6、or(i=0;iqueue[i]);}intSelect(){intm;第11页共11页printf("-------程序有以下基本操作-------");printf("-------1.创建一个新队列-------");printf("-------2.数据入队列-------");printf("-------3.数据出队列-------");printf("-------0.退出-------");scanf("%d",&m);returnm;}3.运行结果上

7、图是在存储空间足够的条件下的基本操作;第11页共11页下图是在有限存储空间条件下的基本操作,可以看到,在最后想让元素“7”入队的时候,由于空间不足,无法入队,提示‘队列已满’;第11页共11页4.对程序的分析正如程序里写的那样,这个程序有创建新队列,数据入队和出队的功能。循环队列巧妙的解决了假溢出的问题,即少用一个元素空间,约定以“头指针在尾指针的下一位置上”作为队满的标志。因此判定循环队列的状态如下:q->front=q->rear=0;初始的空队列q->front=q->rear;操作过程中的队列已空q->front=((q->rear+

8、1)%MAXSIAZE);操作过程中的队列已满要牢记队列的特点,即数据只能从队尾入,队头出,每当新插入新的队尾元素时,“尾指针增1”;每当删除队头元素时,第11页共

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。