第一章 绪论
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)