栈的操作实验报告资料.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
重庆工商大学 《数据结构》 课程实验报告封面 专业班级: 12计算机一班 学 号: 2012131152 学生姓名: 古应波 实验室: 10412 实验题目: 顺序栈、链栈的操作 指导教师: 梁新元 成 绩: 日期:2013年 10 月 日 第 6 周 星期 3 节次 4-5 评分表 实验报告质量 序号 项目 总分 自评分 互评分 组长评分 教师评分 1 算法思想 2 2 算法描述 3 3 实验数据与结果 10 4 总结 4 5 排版 2 源程序质量 6 正确性 63 7 友好性 4 8 可读性 4 9 健壮性 4 10 创新与多样性 4 合计 总分 评分人签字 目录 一、 实验题目 1 二、 实验目的 1 三、 实验内容 1 四、 实验要点与要求 1 五、 算法思想 1 六、 算法描述及流程图 3 七、 实验数据及实验结果 3 八、 程序组成结构示意图 4 九、 顺序栈程序调试图 4 十、 链栈调试图 6 十一、 链栈源代码 7 十二、 顺序栈源代码 10 实验报告的内容与要求 实验题目 顺序栈、链栈的基本操作 实验目的 了解顺序栈、链栈的结构特点及有关概念,掌握其基本操作算法。 实验内容 实现顺序栈和链栈的初始化、进栈、出栈、销毁操作 实验要点与要求 处理的数据类型即ElemType的类型 基本版要求:整型、字符型 扩展版要求:字符串型(基础较好的同学) 2. 必须采用函数调用 算法思想 顺序栈压栈的算法 bool Push(SqList *m,ElemType d)//压栈 { if(m-Top==MaxSize-1) { cout栈满!endl; return false; } m-Top++; m-data[m-Top]=d; return true; } 链栈压栈的算法 bool Push(SqList *m,ElemType d)//压栈 { SqList *p; p=(SqList *)malloc(sizeof(SqList)); p-data=d; p-next=m-next; m-next=p; return true; } 顺序栈压栈的时候,由于栈顶指针初始化为-1,故而添加元素前需要将栈顶指针先+1,再向指定的内存空间储存数据。栈满的条件为Top指针等于MaxSize-1; 链栈由于采用分配内存方式,故而不存在栈满的情况,当需要压榨的时候,需要新建一个节点,为其分配内存空间,然后插入初始化节点之后。修改相应的next域值。 顺序栈的弹栈算法 bool Pop(SqList *m,ElemType d)//弹栈 { if(m-Top==-1) { cout\n栈空!endl; return false; } d=m-data[m-Top]; m-Top--; return true; } 链栈的弹栈算法 bool Pop(SqList *m,ElemType d)//弹栈 { SqList *p; if(m-next==NULL) { cout 栈已弹空!endl; return false; } p=m-next; d=p-data; m-next=p-next; free(p); return true; } 对于顺序栈,由于压栈时是先修改栈顶指针,然后进行赋值,故而弹栈时应该先读取数据,再修改栈顶指针。 链栈的弹栈方式是直接读取当前栈顶指针指向的内存空间的数据,然后释放掉当前空间。 算法描述及流程图 顺序栈、链栈的基本结构体系都一样,都实现栈的初始化,压栈,弹栈和取栈顶元素、销毁栈操作,其中,压榨、弹栈、取栈顶元素用户可选,初始化、销毁系统自动执行 实验数据及实验结果 测试压栈数据类型进行测试 序号 测试类型 输入数据 期望输出结果 实际输出结果 测试结论 合法数据 1,2,a,b, 1,2,a,b, 1,2,a,b 测试成功,程序正确执行 非法数据 -1 1.5 go -1 1.5 go - 1进队成功 .5丢失 g 进队成功 o丢失 不符合程序预设的数据处理类型,程序执行,但是得不到期望的结果 程序组

文档评论(0)

33894522 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档