数据结构栈和队列上机报告

数据结构栈和队列上机报告

ID:31768798

大小:60.11 KB

页数:11页

时间:2019-01-18

数据结构栈和队列上机报告_第1页
数据结构栈和队列上机报告_第2页
数据结构栈和队列上机报告_第3页
数据结构栈和队列上机报告_第4页
数据结构栈和队列上机报告_第5页
资源描述:

《数据结构栈和队列上机报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、数据结构栈和队列一上机的目的和要求实验目的:1.掌握实现栈/队列的基本操作方法2.掌握栈的基本操作:建栈,Push,Pop等运算在顺序存储上的实现3•掌握队列的基本操作:建队列,入队,出队等运算在顺序存储结构上的实现队列的实验参照栈编程实现。实验报告要求:1.上机前完成所有的函数编写2.实验记录部分填写编写主函数调用所写所有函数的屏幕输出3.实验总结部分填写对该次实验所编写函数的运行情况,和在实验过程中对栈的认识和实现情况二基本知识和原理栈和队列是两种常用的数据结构,栈和队列是操作受限的线性表,栈和队列的数据元素具有单一的前驱和

2、后继的线性关系;栈和队列又是两种重要的抽象数据类型。栈是限定在表尾进行插入和删除操作的线性表允许插入和删除的一端为栈顶,另一端为栈底,出栈元素只能是栈顶元素,后进先出,相邻元素具有前驱与后继关系。队列是只允许在一端进行插入操作,在另一端进行删除操作的线性表。允许插入的一端为队尾,允许删除的一端为队头,先进先出,相邻元素具有前驱与后继关系。三程序算法分析及实现代码ttincludc"stdio.h"itinclude"conio.h"#defineMaxSize100/*栈中的元素的最大个数*/typedefintElemType

3、;typedefstruct{ElemTypedata[MaxSize];/*存放堆栈的数组*/inttop;/*栈顶元素*/}Stack,*S;/*堆栈的初始化*/voidlnitStack(Stack*S)(/*指向的是最顶端的元素取值范围为从0'MaxSize-1为T时说明为空栈*/S->top=-l;}intStackEmpty(SqStack*s)//判断是否为空(if(s~>top==s->base){returnTRUE;}else{rcturn0;}}intGetTop(SqStack*s,int*e)//取栈顶

4、{//若栈不空,则用c返回S的栈顶元素,并返M0K;否则返回ERRORif(s->top==s->base)returnERROR;}*e=*(s->lopT);return1;}intPush(SqStack*s,intc)//进栈{〃插入元素e为新的栈顶元素if(s->top-s->base>=s->stacksize){//栈满,追加存储空间s->basc=(int*)malloc(SIZE*sizcof(int));if(!s->base)exit(OVERFLOW);s->top=s->base+s-〉steicksi

5、ze;s->stacksize+二S1ZE;}*(s->lop)++=e;return1;}intPop(SqStack*s,int*e)〃出栈{//若栈不空,则删除S的栈顶元素,用e返回其值,并返回0K;否则返回ERRORif(s->base==s->top)returnERROR;=*——s_>top;rcturn1;}intmain(){SqStacksq;InitStintc;intN;intk;intn=0;z:prinIf("l******************************************

6、**〃);printf("t***printf("t***printf("t***printf(,zt***printf("t***请你输入相应的操作序号进行操作***");1.是否空***");2.取栈顶元素***〃);3.进栈***");4.出栈***");printfCzt***0.退出***〃);printf(〃t********************************************");printfC请选择功能:“);scanf("%d",&k);swit

7、ch(k){case1:if(Stsq)){printf("该栈为空!");}else{printf("该栈非空!");}gotoZ;break;case2:GetTopprintfC栈顶元素为:%d:e);gotoZ;break;case3:printfC请输入耍进栈的元素:");scanf(,z%dz,,&c);P);gotoZ;break;case4:printfe);gotoZ;break;caseO:exit(0);break;defauIt:break;}}}二队列#includeeam>ttincludeh>usi

8、ngnamcspaccstd;^defineTRUE1#defineFLASE0#defineOK1typcdcfstructQNode{chardata;struetQNode*next;}QNode,*Queue;typedefstruct{Queuefro

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

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

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