数据结构熊回香练习题答案(全).pdfVIP

  • 169
  • 0
  • 约9.37万字
  • 约 90页
  • 2018-11-06 发布于江苏
  • 举报
习题一 一、选择题 1.B 2.C 3.B 4.D 5.C 6.D 7.A 8.C 二、填空题 1.数据元素 数据元素间关系 2. 数据的组织形式,即数据元素之间逻辑关系的总体 3 .有穷性 确定性 可行性 4 .算法的时间复杂度和空间复杂度 5.集合 线性结构 树形结构 图状结构或网状结构 三、简述题 1.解答: 四种表示方法。 ⑴顺序存储方式。数据元素顺序存放,每个存储结点只含一个元素。存储位置反映数据 元素间的逻辑关系。存储密度大,但有些操作(如插入、删除)效率较差。 ⑵链式存储方式。每个存储结点除包含数据元素信息外还包含一组(至少一个)指针。 指针反映数据元素间的逻辑关系。这种方式不要求存储空间连续,便于动态操作(如插入、 删除等),但存储空间开销大(用于指针),另外不能折半查找等。 ⑶索引存储方式。除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表, 索引表中索引指示存储结点的存储位置(下标)或存储区间端点(下标),兼有静态和动态 特性。 ⑷散列存储方式。通过散列函数和解决冲突的方法,将关键字散列在连续的有限的地址 空间内,并将散列函数的值解释成关键字所在元素的存储地址,这种存储方式称为散列存储。 其特点是存取速度快,只能按关键字随机存取,不能顺序存取,也不能折半存取。 2 .解答: 数据类型是程序设计语言中的一个概念,它是一个值的集合和操作的集合。如 C 语言 中的整型、实型、字符型等,如整数的取值范围与具体机器和编译系统有关,其操作有加、 减、乘、除、求余等。实际上数据类型是厂家提供给用户的已实现了的数据结构。“抽象数 据类型(ADT )”指一个数学模型及定义在该模型上的一组操作。“抽象”的意义在于数据 类型的数学抽象特性。抽象数据类型的定义仅取决于它的逻辑特性,而与其在计算机内部如 何表示和实现无关。无论其内部结构如何变化,只要它的数学特性不变就不影响它的外部使 用。抽象数据类型和数据类型实质上是一个概念。此外,抽象数据类型的范围更广,它已不 再局限于机器已定义和实现的数据类型,还包括用户在设计软件系统时自行定义的数据类型。 使用抽象数据类型定义的软件模块含定义、表示和实现三部分,封装在一起,对用户透明 (提 供接口),而不必了解实现细节。抽象数据类型的出现使程序设计不再是“艺术”,而是向“科 学”迈进了一步。 3 .解答: 评价好的算法有四个方面。一是算法的正确性;二是算法的易读性;三是算法的健壮性; 四是算法的时空效率(运行)。 4 .解答: 逻辑结构、存储结构、操作(运算)。 5.解答: 通常考虑算法所需要的存储空间量和算法所需要的时间量。后者又涉及到四方面:程序 运行时所需输入的数据总量,对源程序进行编译所需时间,计算机执行每条指令所需时间和 程序中指令重复执行的次数。 6.解答: 栈和队列的逻辑结构相同,其存储表示也可相同(顺序存储和链式存储),但由于其运 算集合不同而成为不同的数据结构。 7 .解答: 线性表中的插入、删除操作,在顺序存储方式下平均移动近一半的元素,时间复杂度为 O (n);而在链式存储方式下,插入和删除时间复杂度都是O (1)。 8.解答: 对算法 A1 和A2 的时间复杂度 T1 和 T2 取对数,得 nlog 2 和2log n。显然,算法 A2 好 2 2 于 A1。 9.解答: ⑴语句执行的次数为 n-2 次,T(n) O(n) 。 ⑵语句执行的次数为 n-1 次,T(n) O(n) 。 ⑶语句执行的次数为 n次,T(n) O(n) 。 ⑷语句执行的次数为 n1/2 1/2 次,T(n) O(n ) 。 ⑸语句执行的次数为(n(n-1)(n-2))/6 次,T(n) O(n3) 。

文档评论(0)

1亿VIP精品文档

相关文档