软件技术基础实验四:栈和队列的操作实现

软件技术基础实验四:栈和队列的操作实现

ID:46569627

大小:60.50 KB

页数:9页

时间:2019-11-25

软件技术基础实验四:栈和队列的操作实现_第1页
软件技术基础实验四:栈和队列的操作实现_第2页
软件技术基础实验四:栈和队列的操作实现_第3页
软件技术基础实验四:栈和队列的操作实现_第4页
软件技术基础实验四:栈和队列的操作实现_第5页
资源描述:

《软件技术基础实验四:栈和队列的操作实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、电子科技大学电子工程学院标准实验报告(实验)课程名称软件技术基础学生姓名:学号:指导教师:一、实验名称实验四:栈和队列的操作实现二、实验目的理解栈和队列的基本概念,栈和队列操作的基本方法以及其编程实现。通过本实验的两个项目的编程、调试和运行结果的比较,分析栈和队列的差别。三、实验内容1、设计一个容量为4的循环队列,编程实现如下操作,并显示各步骤操作后队列的内容:A、队列初始化为空;B、将1、2、3三个数据依次做入队操作;C、做两次出队操作(1、2出队);D、将4、5、6三个数据依次做入队操作;E、将数据7做入队操作;2、设计一个容量为4的顺序栈,编程实现如下操作,并

2、显示各步骤操作后栈的内容:A、栈初始化为空;B、将1、2、3三个数据依次做入栈操作;C、做两次出栈操作;D、将4、5、6三个数据依次做入栈操作;E、将数据7做入栈操作;四、实验程序1.循环队列程序#include#include#definetrue1#definefalse0#definemaxnum5typedefstruct{intdata[maxnum];intfront;intrear;}queuetype;voidmain(){voidinitiatequeue(queuetype*q);intenter(queue

3、type*q,intx);intdeletequeue(queuetype*q);voidprintqueue(queuetype*q);queuetype*q;q=(queuetype*)malloc(sizeof(queuetype));initiatequeue(q);enter(q,1);enter(q,2);enter(q,3);printf("入队操作后:");printqueue(q);printf("两次出队操作后:");deletequeue(q);deletequeue(q);printqueue(q);printf("三次入队操

4、作后:");enter(q,4);enter(q,5);enter(q,6);printqueue(q);printf("第四次入队操作后:");enter(q,7);}voidinitiatequeue(queuetype*q)//初始化队列{q->front=q->rear=0;}intenter(queuetype*q,intx)//入队操作{if(((q->rear)+1)%maxnum==q->front){printf("队列已满,不能进行入队操作");return(false);}else{q->rear=(q->rear+1)%max

5、num;q->data[q->rear]=x;printf("成功插入%d",x);return(true);}}intdeletequeue(queuetype*q)//出队操作{if(q->rear==q->front){printf("队列已空");return(false);}else{q->front=(q->front+1)%maxnum;printf("成功删除");return(q->data[q->front]);}}voidprintqueue(queuetype*q)//输出队列{intl;if(q->front==q->rear)

6、{printf("队列已空");return;}l=q->front;printf("结果是");while(1){l=(++l)%maxnum;printf("%d",q->data[l]);if(l==q->rear)break;}}2.顺序栈程序#include#include#definetrue1#definefalse0#definemaxnum4typedefstruct{intdata[maxnum];inttop;}stacktype;voidmain(){voidinitiatestack(stack

7、type*s);intpushstack(stacktype*s,intx);intpopstack(stacktype*s);intprintstack(stacktype*s);stacktype*s;s=(stacktype*)malloc(sizeof(stacktype));initiatestack(s);printf("入栈操作后:");pushstack(s,1);pushstack(s,2);pushstack(s,3);printstack(s);printf("两次出栈操作后:");popstack(s);popstack(s)

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

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

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