数数据结构实验导书.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文档。上传文档
查看更多
数数据结构实验导书

PAGE PAGE 2数据结构实验指导书 (适用专业 信息管理与信息系统)宋 扬 孟凡波 王镜宇沈阳理工大学经济管理学院PAGE PAGE 7前 言数据结构是一门专业性很强的课程,要求学生在很好的掌握C语言指针和函数的基础上加深对算法的理解和设计,因此必须上机练习,通过上机调试算法和程序来进一步巩固所学的理论,加深理解。所以本课程设有上机实验,共8学时。希望同学们上课时认真听讲(主要听思路,解决问题的方法),上机前编好程序,上机时认真练习,验证、调试程序。发现问题要认真分析、及时解决,并做好记录,认真完成实验报告。这样才能消化课堂上所讲的知识点,学有所获,达到事半功倍的预期效果。本书结合教材共设计了四个试验,同时根据学习的重点和难点设置了相应的实验习题供同学们参考学习。 目 录 TOC \h \z \t 101,1 HYPERLINK \l _Toc157168455 实验一 线性表的应用 PAGEREF _Toc157168455 \h 1 HYPERLINK \l _Toc157168456 实验二 栈的应用(递归算法) PAGEREF _Toc157168456 \h 10 HYPERLINK \l _Toc157168458 实验三 实现二叉树的遍历 19 HYPERLINK \l _Toc157168460 实验四 排序 24实验一 线性表的应用一、实验目的和要求1.掌握数据结构的基本概念;线性表和链表的基本概念和结构构成及种类。2.在熟悉TurboC操作的基础上,掌握线性表和单链表的各种操作:构造存储结构,初始化,元素的插入、删除、查找、遍历等算法的实现。3.通过对链表和顺序表进行比较掌握他们的有优点和用法。4. 认真阅读和掌握实验程序,上机运行本程序,并结合程序进行分析。5.按照你对线性表和单链表的操作需要,重新改写主程序并运行,在实验报告上列出文件清单和运行结果。二、实验环境硬件环境:386以上微机软件环境:Dos或windows操作系统;TurboC三、实验原理与必备知识1.数据结构的概念和表现形式。2.定义一种新的数据类型和静态分配、动态分配和释放内存、。3.线性表的基本算法。2.链式存储结构的定义。3.链表的基本算法。四、实验内容1、典型案例 [题目1] 线性表顺序存储的基本操作这个程序中演示了顺序表的创建、插入、删除和查找。程序如下:#include stdio.h#define MaxSize 50 typedef char ElemType; struct List { ElemType list[MaxSize]; int size; }; void setnull(struct List *p) { p-size=0; } int length(struct List *p) { return(p-size); } int get(struct List *p,int i) { if (ip-size) return(-1); else return(p-list[i-1]); } int locate(struct List *p,ElemType x) { int i=0; while (ip-size p-list[i]!=x) i++; if (i==p-size) return(-1); else return(i+1);} void insert(struct List *p,ElemType x,int i) { int j; if (i1 ip-size+1) printf(位置参数不正确,不能进行插入操作!\n); else { p-size++; for (j=p-size-1;j=i;j--) /*结点向后移动,腾出一个位置*/ p-list[j]=p-list[j-1]; p-list[j]=x; } } void delete(struct List *p,int i) { int j; if (ip-size || i1) printf(位置参数不正确,不能进行删除操作!\n); else { for (j=i-1;jp-size-1;j++) /*结点向前移动,覆盖该删除的结点*/ p-list[j]=p-list[j+1]; p-size--; } }

文档评论(0)

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

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

1亿VIP精品文档

相关文档