第一章 绪论——课后习题解练【数据结构(c语言版 第2版)】

第一章 绪论

1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储 结构、抽象数据类型

数据​​:能输入到计算机中并被处理的符号集合,是描述客观事物的数值、字符等。

​数据元素​​:数据的基本单位,在计算机中通常作为一个整体进行考虑和处理(如一条记录)。

​数据项​​:构成数据元素的不可分割的最小单位(如记录中的一个字段)。

​数据对象​​:性质相同的数据元素的集合,是数据的子集。

​数据结构​​:相互之间存在一种或多种特定关系的数据元素的集合,包括逻辑结构、存储结构及运算。

​逻辑结构​​:数据元素之间的逻辑关系,与存储无关,分为集合、线性、树形、图状等。

​存储结构(物理结构)​​:数据结构在计算机中的存储方式,如顺序存储、链式存储等。

​抽象数据类型(ADT)​​:一个数学模型及定义在该模型上的一组操作,只关心逻辑功能,不关心实现。

2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系

例子:​​线性表​​
​​逻辑结构​​:

数据元素之间是一对一的线性关系,除首尾元素外,每个元素有唯一前驱和唯一后继。
​​存储结构​​:

顺序存储(数组):元素在内存中连续存放,用物理相邻表示逻辑相邻。

链式存储(链表):元素可任意存放,用指针表示逻辑相邻关系。
关系​​:

逻辑结构是问题的抽象,存储结构是逻辑结构的物理实现;同一逻辑结构可对应多种存储结构,选择不同会影响算法效率。

3.简述逻辑结构的四种基本关系并画出它们的关系图

4.存储结构由哪两种基本的存储方法实现?

顺序存储方法​​: 用一段连续的存储单元依次存储数据元素,逻辑上相邻的元素物理上也相邻。
**​​链式存储方法​​:**用任意存储单元存储数据元素,通过指针表示逻辑关系,逻辑相邻的元素物理上不一定相邻。

5.选择题

(1)

答案:C

数据结构的分类方式:
​​ 逻辑结构​​指的是数据元素之间的抽象关系,与计算机存储无关。
逻辑结构主要分为 ​​线性结构(如线性表、栈、队列)和 非线性结构(如树、图)。

PS:存储结构分类是 顺序存储、链式存储、索引存、储散列存储
逻辑结构是问题的数学模型,存储结构是它在计算机中的实现。同一个逻辑结构(如线性表)可以采用不同的存储结构(顺序表或链表)。

(2)

答案:C

逻辑结构​​:描述数据元素之间的逻辑关系(如线性、树、图等),与存储方式、元素内容、个数等无关。

​​存储结构​​:与元素存储的物理位置、相对位置等有关。

​​存储实现​​和​​运算实现​​:与具体存储方式和算法细节相关。

(3)

答案:B

逻辑结构 (如线性表、树、图)中,数据元素属于同一​​数据对象 ​​,即它们有相同的数据项构成 (即数据项的个数相同、对应数据项的类型一致),但数据项的值可以不同

(4)

答案:D

A. 数据元素是数据的最小单位​​

错。数据元素是组成数据的基本单位 (整体考虑),但​​数据项​​才是数据不可分割的最小单位

例如:一条学生记录(数据元素)由学号、姓名等数据项组成,数据项是最小单位。

​​B. 数据项是数据的基本单位​​

错。数据的基本单位是数据元素,不是数据项。

​​C. 数据结构是带有结构的各数据项的集合​​

错。数据结构是带有结构的数据元素的集合 ,不是数据项的集合。

​​D. 一些表面上很不相同的数据可以有相同的逻辑结构​​

对。逻辑结构是抽象的关系,不同的具体内容可以对应同一种逻辑结构。

例如:组织机构树(公司部门层次)和家族族谱,内容不同,但逻辑结构都是树形结构。

(5)

答案:D

(6)

答案:A

非线性数据结构​​: 数据元素之间存在一对多或多对多的关系,如图、树等。
**​​线性数据结构​​:**数据元素之间存在一对一的关系,如字符串(线性表的一种)、队列、栈等。

6.试分析下列各算法的时间复杂度

时间复杂度的本质

时间复杂度的本质​​并非单纯是"执行次数最多的语句"​​,而是算法中​​基本操作重复执行的次数与问题规模 n的关系,也就是说是一个函数,即 某语句重复执行的次数 = f(n),f(n)为n的函数

(1)

(2)

(3)

(4)

(5)

(6)