- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
數据结构(java语言版)-王学军主编-课后习题参考答案
第一章习题参考答案
一、简答题
1.
【参考答案】 :
数据结构是计算机类专业的一门专业基础的课程,是学习操作系统、数据库原理等专业课的基础,所涉及的有数学范围的诸多知识;计算机硬件范围的编码理论、存取装置和存取方法等知识;软件范围的文件系统、数据的动态存储管理和信息管理等知识。所以说数据结构是介于数学、计算机硬件及软件三者之间的一门核心课程。
2.
【参考答案】 :
(1)学生管理系统中的学生信息顺序表、图书查询系统中的图书信息表、电话查询系统中的电话号码表中都表现了前后元素之间的线性关系,课本中【例1.2】也是线性结构。
(2)计算机文件管理系统中目录的层次管理结构、家谱管理等都体现上一层次与下一层次元素之间的层次关系,即树形结构,课本中【例1.3】也是树形结构。
(3)地图中城市之间的关系、同一地区不同城市之间的交通关系等都反映了不同元素之间复杂的网状结构,课本中【例1.4】也是网状结构。
3.
【参考答案】 :
数据元素(Data Element)是构成数据的基本单位。这些数据可由单个元素构成的,例如{1,4,7,100,…… }中每个数字就是一个数据。
另外有些数据是由一组元素构成的。数据项(Data Item)是数据结构中的最小单位。当数据元素由多个项构成时,其每个分项称为数据项,例如,{{1,100,’a’},{1,101,’b’,{3,102,’c’ },
……}中的每个元素都是有三个数据元素构成的。
4.
【参考答案】 :
不矛盾。
算法的时间复杂度是指在计算机上运行该算法(或程序)所需要的时间。它与机器的性能、算法语言的选取、编译程序的效率、算法的选择等方面有关系。
算法的空间复杂度是指程序从开始运行到结束运行所需的最大存储空间,其影响因素包括:输入数据所占空间;程序本身所占空间;辅助变量所占空间等。
算法的时间复杂度和空间复杂度是反映算法优劣的两个方面,但是有时候会因为提高时间复杂度而降低空间复杂度,反之同理,但是这些并不说明它们之间是有矛盾的。
5.
【参考答案】 :
(1)学生管理系统中的学生信息顺序表是线性关系。每个学生的整体信息就是一个数据元素,体现每个学生具体信息的值为数据项,其前后之间的顺序关系就是线性关系的数据结构。
(2)家谱管理系统中长辈和晚辈之间的关系就是一个树形层次结构,家谱中每个成员就是一个数据元素,其前后关系就是树形关系。
(3)华北地区各城市之间构成了网状关系。每个城市就是一个数据元素,各城市之间的关系就是一个网状结构。
6.
【参考答案】 :
(1)数据类型(Data Type)和数据结构之间有着密切的联系,在许多由高级语言编写的程序中,对于常量、变量或表达式都有一个所属的确定数据类型(即本身的数据特点)。
(2)数据结构(Data Structure)是指具有某种联系的数据元素以及元素之间所构成的各种关系组成的集合。
(3)逻辑结构(Logical Structure)是指构成数据结构的数据元素相互之间本身具有的逻辑关系。
(4)存储结构(或物理结构)是指构成数据结构的数据元素及其关系在计算机中的描述和表示。
(5)线性结构的数据元素之间形成一对一的线性关系。
(6)非线性结构包括树形结构、图形结构。
7.
【参考答案】 :
一个好的算法通常要达到以下的要求:首先,算法必须是正确的,即其执行结果应当满足预先规定的功能和性能要求;其次,一个可行的算法必须是可以被多个用户读懂的,应当思路清晰、层次分明、简单明了、易读易懂;再次,一个确定的算法每个步骤一定是确实可行的,不能产生二义性;最后,用户设计的算法一定是效率比较高的,对存储空间和时间效率的考虑一定要全面。
8.
【参考答案】 :
(1)时间复杂度:第1条语句定义并赋初值执行2次,第2条语句定义执行1次,第3条for循环语句执行2*11+2次,第4条循环体语句执行11次。
空间复杂度:该题目在实现过程中使用了一个整型数组以及一个用于存放循环变量的整型变量。
(2)时间复杂度:第1条语句定义并赋初值执行2次,第2条语句定义执行1次,第3条for循环语句执行2*8+2次,第4条for循环语句执行88次,第5、6条语句执行36次。
空间复杂度:该题目三个整型变量。
二、思考题
1.
【参考答案】 :
Java语言是面向对象的程序设计,本质是把数据和处理数据的过程当成一个整体——对象。对象=数据+方法(作用于这些数据上的操作);描述数据结构的算法比较直观,用Java语言实现算法时,将数据成员和对成员函数操作的方法都封装在类中,表现形式和数据结构的抽象数据类型的定义形式一致,能够更深入的描述和刻画数据结构,因此Java语言更有利于实现数据结构中逻辑结构、存储结构以及算法的实现。
面向过程的程序设计(如C语言),必须指定计
文档评论(0)