网站大量收购独家精品文档,联系QQ:2885784924

数据结构实验指导书(版本2).doc

  1. 1、本文档共195页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验指导书(版本2)

数据结构 实 验 指 导 书 信息科学与技术学院 周荣辉 2006年6月 目录 前言 1 实验一 一元稀疏多项式的计算 2 实验二 长整数四则运算 18 实验三 停车场管理 40 实验四 算术表达式求值 59 实验五 文学研究助手实验指导书 71 实验六 多维数组 94 实验七 哈夫曼编/译码器实验指导书 119 实验八 最短路径实验指导书 138 实验九 B-树及图书管理实验指导书 150 实验十 内部排序算法比较实验指导书 184 前言 数据结构是软件开发的基础。数据结构课程是软件工程、计算机科学与技术、网络工程、信息安全等专业的必修技术基础课程。该课程是在学生学习高级语言程序设计课程基础上,使学生掌握各种常用数据结构的逻辑表示、存储表示、处理方法及应用算法设计,学会常用数据分类和数据查找的技术,对所设计的算法会做定量或定性的分析比较,培养学生的算法设计与分析的能力。通过该课程的学习,使学生学会分析数据对象特性,选择合适的数据结构、存贮结构及相应的基本处理算法;初步掌握算法的时间空间复杂度分析技巧。既为学生学习后继课程打好基础,也为将来软件开发提供理论指导。 数据结构具有很强的实践性,只有通过编程上机实验,才能真正领会数据结构的真正内涵,并灵活运用数据结构的基本知识提高自己的软件开发能力。 本数据结构实验选择了具有一定难度的实验项目10个,涉及到线性表、栈、队列、字符串、数据、二叉树、图、数据查找、数据排序等全部教学内容。 学生不一定完成全部实验内容,根据课程的学分不同,可以选择不同数目的实验。一般而言,《数据结根A》可以选择其中5个实验,《数据结根B》可以选择其中3个实验。鼓励学生多做实验,如果学生所做实验数目超过规定数据,可以加分。 本实验是以标准C语言为背景,以微型计算机为主要机型,实验用编程语言采用Turbo C 2.0,Borland C 3.0等以上版本。 为了使学生不仅掌握数据结构的一般原理,而且掌握具有一定实用性的程序的一般结构,实验指导书中给出了程序的总体框架和部分源程序代码,以及程序运行控制和交互式操作的基本方式。通过程序总体框架,让学生学会如何组织程序。通过对程序要解决的问题按功能进行分解,使学生逐步适应和学会运用抽象思维方式和模块化程序设计技术编写有一定规模、具有一定实用性的程序的能力。 编写数据结构实验指导书是对软件类课程的一个尝试。我们将通过学生在实验过程中的反馈意见不断完善。 实验一 一元稀疏多项式的计算 一、实验目的 通过一元稀疏多项式的表示和计算,帮助学生熟练掌握线性表的基本操作,以及用线性链表表示线性表的存储结构和操作的实现。 二、实验内容 实现一元稀疏多项式的如下运算: (1)两个一元稀疏多项式相加运算 (2)两个一元稀疏多项式相减运算 (3)两个一元稀疏多项式相乘运算 三、实验原理 1、一元多项式的逻辑表示 一元多项式pn(x)可表示成: pn(x)=p0+p1x+p2x2+…+pnxn n+1个系数可用线性表来表示: p0,p1,p2,…,pn) 其中每一项的指数i隐含在其系数pi的序号中。 一个一元多项式,如果其系数不为0的项相对于其多项式的次数(最大指数)而言要少得多,则称该一元多项式为一元稀疏多项式。 对一元稀疏多项式,若采用顺序存储结构,需n+1个元素单元存放系数。当n很大且为零的系数较多时,既浪费存储空间,又浪费运算时间。如: s(x)=1+3x10000+2x20000 采用顺序存储分配需20001个元素空间,但只有3个元素有意义。若参与同数量级的加法运算,要运行2000次以上。因此,对一元多项式采用链式存储结构是必然的选择。上例的链表表示形式如图1-1所示。 p 2、一元稀疏多项式的链式存储表示 结点结构定义如下: typedef struct Item{ double coef; int expn; struct Item *next; }Item,*Polyn; 3、一元稀疏多项式运算原理 设有两个稀疏多项式A和B,其运算原理如下: (1)两个多项式相加(C=A+B)的运算原则: 指数相同,系数相加,若不为0,则在结果多项式中构成一新项。 指数不同,则两项分别抄入结果多项式中。 (2)两个多项式相减(C=A-B)的运算原则: 指数相同,系数相减,若不为0,则构成一新项。 指数不同,对A多项式的项,直接抄入结果多项式中。 对B多项式的项,系数符号变换后,再将放入结果多项式中 (3)两个多项式相乘(C=A×B)的运算原则 用B多项式的每一项分别去乘A多项式的每一项,并将乘得得结果放入结果多项式中。 若结果多项式中有指数相同的项,则应把它们合并为一项。 四、实现 1、约定 使用带头结点的链表表示一元稀

文档评论(0)

骨干 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档