实验三栈和队列的算法实现指导书(栈)

实验三栈和队列的算法实现指导书(栈)

ID:39577837

大小:56.00 KB

页数:3页

时间:2019-07-06

实验三栈和队列的算法实现指导书(栈)_第1页
实验三栈和队列的算法实现指导书(栈)_第2页
实验三栈和队列的算法实现指导书(栈)_第3页
资源描述:

《实验三栈和队列的算法实现指导书(栈)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验三栈和队列的算法实现(栈)一、实验目的1.掌握栈这种数据结构特性及其主要存储结构。2.掌握栈的基本操作算法。二.实验指导(1)程序的三部分构架:1、常量定义(#define),类型定义(typedef)及函数原型定义(#include);2、算法函数,即InitStack、StackEmpty、Push和Pop、等3、主函数。(2)栈的顺序存储结构typedefstruct{ElemTypea[MAXSIZE];/*一维数组子域*/inttop;/*栈顶指针子域*/}SqStack;/*栈的顺序结构体类型*/(3)

2、栈的特点:后进先出(4)在实例中,判栈空条件:s.top=-1;判栈满条件:s.top=MAXSIZE-1;进栈操作:先加后压;出栈操作:先弹后减。三、实例栈的顺序存储结构及实现(代码)#include #include #defineMAXSIZE20/*数组最大界限*/typedefintElemType;/*数据元素类型*/typedefstruct{ElemTypea[MAXSIZE];/*一维数组子域*/inttop;/*栈顶指针子域*/}SqStack;/*栈的顺序结构

3、体类型*/SqStacks1;/*函数声明*/voidinit_s(SqStack*s);voidout_s(SqStacks);voidpush(SqStack*s,ElemTypee);//ElemTypepop(SqStack*s);/*主函数*/Voidmain(){intk;ElemTypee;charch;init_s(&s1);/*初始化一个空栈*/do{printf("");printf("1.数据元素e进栈");printf("2.出栈一个元素,返回其值");printf(

4、"3.结束程序运行");printf("======================================");printf("请输入您的选择(1,2,3)");scanf("%d",&k);switch(k){case1:{printf("进栈e=?");scanf("%d",&e);push(&s1,e);out_s(s1);}break;//case2:{x=pop(&s1);//printf("出栈元素:%d",x);//out_s(s1);//}break;case3:exi

5、t(0);}/*switch*/printf("----------------");}while(k>=1&&k<3);printf("再见!");printf(“打回车键,返回。“);ch=getchar();}/*main*//*初始化空栈*/voidinit_s(SqStack*s){s->top=-1;}/*init_s*//*输出栈的内容*/voidout_s(SqStacks){charch;inti;/*千万不能修改栈顶指针top*/if(s.top==-1)printf(“Stacki

6、sNULL.“);else{i=s.top;while(i!=-1){printf(“data=%d”,s.a[i]);i--;}}printf(“打回车键,继续。“);ch=getchar();}/*out_c*//*进栈函数*/voidpush(SqStack*s,ElemTypee){if(s->top==MAXSIZE-1)printf(“SstackisOverflow!”);else{s->top++;s->a[s->top]=e;}}/*push*/四、实验内容与要求实例中给出了栈的顺序存储结

7、构上的栈初始化、压栈及输出栈元素等基本操作,并给出了测试函数(主函数)。现要求:1.验证以上基本操作;2.设计出栈函数pop(SqStack*s),实现出栈操作;3.自己设计算法测试数据,验证算法的正确性、健壮性,并记录下调试过程。五、思考题如果设定判栈空条件:s.top=0,算法该怎么设计?

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

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

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