ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:36.14KB ,
资源ID:17416835      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17416835.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(栈的顺序表示和实现文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

栈的顺序表示和实现文档格式.docx

1、2、栈的顺序存储表示:#define STACK_INIT_SIZE 6 /存储空间初始分配量#define STACKINCREMENT 2 /存储空间分配增量typedef structSElemType *base; /在栈构造之前和销毁之后,base的值为NULLSElemType *top; /栈顶指针int stacksize; /当前分配的存储空间,以元素为单位SqStack;【实验环境】VC + 6.0二、实验内容:【实验方案】编写主函数,调用栈的初始化建空栈、取栈顶元素、进栈以及出栈的算法,调制运行,得出结果。【实验过程】(实验步骤、记录、数据、分析)1、输入初始化建空栈、取

2、栈顶元素、进栈、出栈算法和主函数:/栈的顺序存储表示#define STACK_INIT_SIZE 6; /存储空间初始分配量#define STACKINCREMENT 2; /存储空间分配增量Status InitStack(SqStack &S)/构造一个空栈S/InitStackStatus GetTop(SqStack S,SElemType &e)/若栈不空,则用e返回S的栈顶元素,并返回OK;否则返回ERROR/GetTopStatus Push(SqStack &S,SElemType e)/插入元素e为新的栈顶元素/PushStatus Pop(SqStack &S,SEle

3、mType &/若栈顶不空,则删除S的栈顶元素,用e返回其值,并返回OK;/Popvoid main()2、调试:发现错误:在以下编码中出现多个错误:S.base=(SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType);syntax error : missing ) before ;;syntax error : illegal indirection;这三个错误主要是由于前面栈的顺序存储表示编码中出现错误,应把“#define STACK_INIT_SIZE 6; #define STACKINCREMENT 2;”中的两个分号去掉;

4、修改之后,继续调试,又发现一个错误: Sqstack : undeclared identifier即Sqstack无定义,查看前面编码发现,是对SqStack进行定义,故这里也要与之相应,需把Sqstack改为SqStack;3、调试到无任何错误,运行:因栈的存储空间初始化分配量为6,故需输入六个数字“2 3 56 7 7 5”,按回车键,得到“2 3 56 7 7 5;e=5”其中e=5表示栈顶元素为5,由此完成了栈的初始化建空栈、取栈顶元素算法;接着输入一个数“23”,表示要插入的元素,回车,得到“2 3 56 7 7 23;e=23;23”,此时“23”已进栈,栈顶元素变为e=23,因

5、存储空间为6,而栈的修改是按后进先出原则进行,所以栈顶元素“23”先出栈,由此完成了栈的进栈、出栈算法;最终栈的顺序表示和实现得以完成。【实验结论】(结果)【实验小结】(收获体会)这次上机,顺利的完成了栈的顺序表示和实现的上机实验任务,但是没有能够独立编写主函数,而是需要在老师和同学的帮助下才能够编写出来,所以自己还要继续努力,争取学会自己编写主函数。三、指导教师评语及成绩:评 语评语等级优良中及格不及格1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强2.实验方案设计合理3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)4实验结论正确. 成 绩: 指导教师签名: 批阅日期:附录1

6、:源 程 序#includestdlib.h#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef int SElemType; SElemType *base; SElemType *top; int stacksize; /构造一个空栈S S.base=(SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType); if(!S.base)exit(OVE

7、RFLOW); /存储分配失败 S.top=S.base; S.stacksize=STACK_INIT_SIZE; return OK; /若栈不空,则用e返回S的栈顶元素,并返回OK; if(S.top=S.base) return ERROR; e=*(S.top-1); /插入元素e为新的栈顶元素 if(S.top-S.base=S.stacksize)/栈满,追加存储空间 S.base=(SElemType *)realloc(S.base, (S.stacksize+STACKINCREMENT) * sizeof(SElemType); if(!S.base) exit(OVER

8、FLOW); S.top=S.base+S.stacksize; S.stacksize +=STACKINCREMENT; * S.top+=e; /若栈顶不空,则删除S的栈顶元素,用e返回其值,并返回OK; e= * -S.top; SqStack S;int i; SElemType e; InitStack(S); for(i=0;iSTACK_INIT_SIZE;i+) scanf(%d,&S.basei); S.top+;S.top-S.base;i+) printf(%d ,*(S.base+i); printf(n); GetTop(S,e);e=%dn,e); scanf(e); Push(S,e); Pop(S,e); for(i=0;i+);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1