数据结构——栈的相关操作报告文库_第1页
数据结构——栈的相关操作报告文库_第2页
数据结构——栈的相关操作报告文库_第3页
数据结构——栈的相关操作报告文库_第4页
数据结构——栈的相关操作报告文库_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、喜舞爭悅南湖学院jiaxing university nanhu college数据结构课程设计题目栈的和关操作系部商学系专业信息管理及信息系统班级信息n141学生姓名贺森烁指导教师梁田 编写日期2016.7.7目录1、实验目的2、实验内容11)运行环境12)程序所实现的功能13)存储结构24)程序主要模块24、算法设计25、详细程序清单56、程序运行截图ii7、收获及体会121、实验目的数据结构课程设计是学生对课程所学知识的综合运用,它与课堂听讲、上机实验、课外练 习、自学研究相辅相成,构成一个完整的课程教学体系。数据结构是一门实践性强的课程, 其中对算法设计和程序编写的掌握尤为重要。学生虽

2、然可以通过与课堂教学同步的上机实验完 成相关内容的练习,但却往往局限于一些功能简单、彼此z间关系独立的算法和程序。课程设 计是一种综合训练,致力于培养学生全面、灵活的算法设计思想和较高的编程能力,为今后从 事计算机开发与应用打下基础。新世纪需要具有丰富科学知识、独立解决实际问题、有创造能 力的新型人才,这也是该课程设计的最终目标2、实验内容模块2:1栈的有关操作*要求实现对栈入栈和岀栈操作,可以任选顺序栈或链栈。2栈的应用举例*要求可以自选题口,并实现相关操作(如:递归的应用等)。3、实验步骤1)运行坏境:vs2013;语言:c语言;2)程序所实现的功能:要求实现对栈入栈和出栈操作,可以任选顺

3、序栈或链栈。3)存储结构:链栈:typedefstructsnode elementtype data;structsnode *next;snode, *linkstack;十进制数转二进制数:使用除2取余法,例如数字13,得到的余数依次是1、0、1、1,转化后二进制数为110u最 先得到的余数是二进制的最低位,最后得到的余数是二进制的最高位,所以可以利用栈的先进 后出的特点来解决。4)程序主要模块栈:initstack(linkstack s)置栈空isstackempty(linkstack s)判空pushstack(linkstack s, elementtype x)入栈pop(l

4、inkstacks,elementtype *e) 岀栈 printstack(linkstack s) 打印multibaseoutput(int n, int b)进制转换4、算法设计linkstackinitstack(linkstack s)置栈空使创建的新节点为空 s = null;return s; 向主函数返回intisstackempty(linkstack s)判空,判断是否为空栈if (s = null) return true;else returnfalse;linkstackpushstack(linkstack s, elementtype x)/a栈 / 插入元素

5、 x 为新的栈顶元素 linkstack p;p = (linkstack)malloczeof(snode); 为 p 分配新的存储空间if (p = null) return false; 分酉己失败贝!返回 falsep> data = x;p>n ext = s;s = p;return s; 向主函数返回void printstack(linkstack s)打印linkstack p = s;inti = 0; /计数while (p != null)printf(nlinkstack node %d is %c ", i, p->data);p = p

6、->next;/p指向下一个节点printf(nnn);linkstack pop(linkstacks,elementtype *e) 岀栈若栈不空,则删除s的栈顶元素,用e返回其值,并返回s snode *temp;*e=s->data; 存储释放数据temp=s;s = temp->next;free(tem p); 释放空间return s; 向主函数返回void multibaseoutput(int nz int b)进制转换snode *s;inti;s = (snode *)malloczeof(snode);s 二 in itstack(s);while (

7、n)从右向左产生b进制的各位数字,并将其进栈s=pushstack(s, n%b);n = n / b;时间复杂度o(n)while (lisstackempty(s) 栈非空时退栈输岀s = pop(sz&i); printf(”ct i);5、详细程序清单#include<stdio.h>#in clude<stdlib.h>#define true 1#define false 0#define nullotypedefi nteleme nttype;typedefstructsnode elementtype data;structsnode ext;

8、snode, *linkstack;linkstackinitstack(linkstack s)置栈空s = null;return s;intisstackempty(linkstack s)判空讦(s = null) return true;else return false;linkstackpushstack(linkstack s, elementtype x)入栈linkstack p;p = (linkstack)malloc zeof(snode);讦(p = null) return false;p->data = x;p->n ext = s;s = p;vo

9、id printstack(linkstack s)打印linkstack p = s;inti = 0;while (p != null) printf(nlinkstack node %d is %c ", i; p->data); p = p_>n ext;prin tf(nnu);i+;linkstack pop(linkstacks,elementtype *e) 出栈snode *temp;*e=s > data;temp=s;s = temp->n ext;free(temp);void multibaseoutput(int nz int b)

10、进制转换inti;snode *s;s = (snode *)malloc(sizeof(snode);s 二 in itstack(s);while (n) s=pushstack(s, n%b);n = n / b;while (!isstackempty(s) s = pop(sz&i);prin廿(n%d; i);void main()int x=13zy=2;prints请输入需要转换的十进制数x n");multibaseoutput(xz y);getchar();6、程序运行截图测试将13转换为2进制7、收获及体会通过这次的课程设计,我认识到:仅仅掌握课本上的

11、知识是不够的,在实际操作时,常常 遇到一些问题,自己看不懂,更无法解决。不过,经过自己不断的思考,尝试着去更改代码中 出现的问题。虽然开始很困难,但在老师和同学的帮助下,我逐渐的熟悉了许多操作,为后继 工作的顺利进行做了准备。在课程设计过程屮,我们不断发现错误,不断改正,不断领悟,不断收获,最终的检测调 试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了, 在设计中遇到了很多问题,最后在老师的指导下,终于迎刃而解。在今后社会的发展和学习实 践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在, 然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上披荆斩棘,而 不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认 口j!我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上 也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是将来最实用的, 真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们 的将来也有很大的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论