数据结构实验指导书.docxVIP

  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文档。上传文档
查看更多
1 1 1 1 数据结构 实验指导书 信息科学与技术学院 刖百 数据结构是软件开发的基础。数据结构课程是软件工程、计算机科学与技术、网络工程、 信息安全等专业的必修技术基础课程。该课程是在学生学习高级语言程序设计课程基础上, 使学生掌握各种常用数据结构的逻辑表示、存储表示、处理方法及应用算法设计,学会常用 数据分类和数据查找的技术,对所设计的算法会做定量或定性的分析比较,培养学生的算法 设计与分析的能力。通过该课程的学习,使学生学会分析数据对象特性,选择合适的数据结 构、存贮结构及相应的基本处理算法;初步掌握算法的时间空间复杂度分析技巧。既为学生 学习后继课程打好基础,也为将来软件开发提供理论指导。 数据结构具有很强的实践性,只有通过编程上机实验,才能真正领会数据结构的真正内 涵,并灵活运用数据结构的基本知识提高自己的软件开发能力。 本数据结构实验选择了具有一定难度的实验项目 10个,涉及到线性表、栈、队列、字 符串、数据、二叉树、图、数据查找、数据排序等全部教学内容。 学生不一定完成全部实验内容, 根据课程的学分不同, 可以选择不同数目的实验。 一般 而言,《数据结根 A〉可以选择其中3个实验,《数据结根B》可以选择其中两个实验。鼓励学 生多做实验,如果学生所做实验数目超过规定数据,可以加分。 本实验是以标准 C语言为背景,以微型计算机为主要机型, 实验用编程语言采用 Turbo C 2.0, Borland C 3.0 等以上版本。 为了使学生不仅掌握数据结构的一般原理, 而且掌握具有一定实用性的程序的一般结构, 实验指导书中给出了程序的总体框架和部分源程序代码,以及程序运行控制和交互式操作的 基本方式。通过程序总体框架,让学生学会如何组织程序。通过对程序要解决的问题按功能 进行分解,使学生逐步适应和学会运用抽象思维方式和模块化程序设计技术编写有一定规模、 具有一定实用性的程序的能力。 编写数据结构实验指导书是对软件类课程的一个尝试。我们将通过学生在实验过程中的 反馈意见不断完善。 PAGE # PAGE # PAGE # PAGE # 实验 元稀疏多项式的计算 一、实验目的 通过一元稀疏多项式的表示和计算,帮助学生熟练掌握线性表的基本操作,以及用线性 链表表示线性表的存储结构和操作的实现。 二、实验内容 实现一元稀疏多项式的如下运算: (1)两个一元稀疏多项式相加运算 (2)两个一元稀疏多项式相减运算 (3)两个一元稀疏多项式相乘运算 三、实验原理 1、一元多项式的逻辑表示 一元多项式Pn(X)可表示成: Pn(X)=po+piX+p2X2+ ,, +pnXn n+1个系数可用线性表来表示: po, pi, P2,…,Pn) 其中每一项的指数i隐含在其系数Pi的序号中。 一个一元多项式,如果其系数不为 0的项相对于其多项式的次数(最大指数)而言要少 得多,则称该一■元多项式为一■元稀疏多项式。 对一元稀疏多项式,若采用顺序存储结构,需 n+1个元素单元存放系数。当 n很大且为 零的系数较多时,既浪费存储空间,又浪费运算时间。如: s(x)=1+3x 10000+2x20000 采用顺序存储分配需 20001个元素空间,但只有 3个元素有意义。若参与同数量级的加 法运算,要运行2000次以上。因此,对一元多项式采用链式存储结构是必然的选择。 上例的 链表表示形式如图1-1所示。 图1-1 : 一元稀疏多项式的链表表示示意图 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=AXB)的运算原则 用B多项式的每一项分别去乘 A多项式的每一项,并将乘得得结果放入结果 多项式中。 若结果多项式中有指数相同的项,则应把它们合并为一项。 四、实现 1、约定使用带头结点的链表表示一元稀疏多项式。 (2)用线性链表表示的一元稀疏多项式中,各结点按指数的升序排列。 (3)每个多项式都独立存在,即参与运算的两个多项式的数据不能因运算而受到破坏, 加、减、乘运算的结果应相互不受影响。因此,对于每种情况都必须单独建立一个链表

文档评论(0)

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

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

1亿VIP精品文档

相关文档