《数据结构:C语言版》(严蔚敏)——读书笔记
第一章 绪论——小结
这章主要是介绍了一些数据结构里面的概念,为后面的知识铺垫了一下。
ps:为了加强印象,手打一波。后面给出习题,和习题答案。
本章介绍了数据结构的基本概念和术语,以及算法和算法时间复杂度的分析方法。主要内容如下:
-
1)数据结构是一门研究非数值计算程序设计中操作对象,以及这些对象之间的关系和操作的学科。
-
2)数据结构包括两个方面的内容:数据的逻辑结构和存储结构。同一逻辑结构采用不同的存储方法,可以得到不同的存储结构。
- 逻辑结构是从具体问题抽象出来的数学模型,从逻辑关系上描述数据,它与数据的存储无关。根据数据元素之间关系的不同特性, 通常有四类基本逻辑结构:集合结构、线性结构、树形结构和图形结构。
- 存储结构是逻辑结构在计算机中的存储表示,有两类存储结构:顺序存储结构和链式存储结构。
-
3)抽象数据类型是指由用户定义的、表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称,具体包括三部分:数据对象、数据对象上的关系的集合、以及对数据对象的基本操作的集合。
-
4) 算法是为了解决某类问题而规定的一个有限长的操作序列。算法具有五个特性:有穷性、确定性、可行性、输入和输出。一个算法的优劣应该从以下四方面来评价:正确性、可读性、健壮性和高效性。
-
5)算法分析的两个主要方面是分析算法的时间复杂度和空间复杂度,以考察算法的时间和空间效率。一般情况下,鉴于运算的空间较为充足,故将算法的时间复杂度作为分析的重点。算法执行时间T(n)的数量及成为算法的渐进时间复杂度。T(n)=O(f(n)),它标识随着问题的规模n的增大,算法执行时间的增长率和f(n)的增长率相同,简称时间复杂度。
学完本章之后,要求:
- 了解算法的特性和凭借标准;
- 了解抽象数据类型的定义、表示与实现方法;
- △掌握数据结构相关的基本概念,包括数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构等;
- ★重点掌握数据结构所含两个层次的具体含义及其相互关系;
- ★重点掌握算法时间复杂度的分析方法。
课后习题以及参考答案
1.1 简述下列术语:数据、数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。
数据(data)是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素(data element)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据对象(data object)是性质相同的数据元素的集合,是数据的一个子集。 数据结构(data structure)是相互之间存在一种或多种特定关系的数据元素的集合。 存储结构(物理结构)是数据结构在计算机中的表示(又称映像)。 数据类型(data type)是一个值的集合和定义在这个值集上的一组操作的总称。 抽象数据类型(Abstract Data Type)是指一个数学模型以及定义在该模型上的一组操作。
1.2 试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。
例如有一张学生基本信息表ÿ