数据结构读书笔记【第一章】
这一部分内容是关于数据结构的一些基础概念,这有助于我们理解后续的内容:
【1】数据:对客观事物的符号表示,在计算机中是指所有能输入到计算机处理的符号的总称。
【2】数据元素:数据组成的基本单位,元素一般作为数据结构中的一个整体考虑和处理,可能包含多个数据项,例如表中的一条记录为一个数据元素,但含有多个数据项。
【3】数据对象:指的是性质相同的数据元素组成的集合,是数据的一个子集。
【4】数据结构:相互之间存在一种或多种特定关系的数据元素的集合。
【逻辑结构】
这里元素之间的关系可以分为几类:第一种是集合关系,第二种是线性的关系,单链表就是这样一种关系,第三种和第四种分别是树形关系和图形关系,也就是对应于树和图。
上面描述这么多,最关键就是为了说明数据和关系两个概念。这里的关系指的是逻辑关系,例如两个数据a,b按照复数的逻辑关系组织且a为实部,b为虚部。
【存储结构】
有了数学上的数据结构概念,我们还需要把数据映射到计算机中表示(存储结构),也就是将数据和关系用计算机语言来表示出来,一个位串可以表示一个数据元素(8位可以用来表示字符),
通常称这个位串为元素,如果一个位串包含多个数据项,对应于每个数据项的被称为数据域。根据不同表示方法可以得到顺序和链式两种存储结构。
⭐总结上面的内容就是一个算法的设计取决于逻辑结构,算法的实现依赖存储结构。
【数据类型】
为了方便表示存储结构,高级程序语言借助数据类型来对它进行描述。数据类型的定义是一个值的集合和这个值集上一组操作的总称。
根据值的不同特性,数据类型又可以分为两类:一类是非结构的“原子类型”(整形、指针),另一类是”结构类型“(数组),结构类型的值是若干成分按照某种结构组成,
这里的成分既可以是结构的也可以是非结构的。由于数据结构可以看作是一组具有相同结构的值,所以结构类型也可以看作是数据结构和定义在上面的一组操作来构成的。
⭐数据类型不仅可以表示存储关系,还可以定义一组该类型的操作。
【抽象数据类型】
抽象数据类型实质和数据类型一样,用户可以自己定义数据类型。引入了抽象数据类型后,一个模块内部定义一组数据和数据操作的细节,对外只需要提供抽象数据和抽象操作。
按值的不同特性分为:原子类型、固定聚合类型(值由确定数目的成分按某种结构组成)、可变聚合类型(成分数目不确定)、多型数据类型(值的成分不确定,如可以为整数或者字符)。
【算法】
算法是由控制结构和原操作构成,则算法时间取决于两者的综合效果。算法的时间度量可以根据某一问题基本操作重复次数。
若某一问题基本操作执行次数是n的某个函数f(n),则算法的时间度量为 T(n)=O(f(n))。随着问题规模的增大,算法时间增长率同f(n)相同,称为算法的渐进时间复杂度。
程序占用的存储空间可以分为本身数据所需和过程的辅助空间,针对算法对空间的度量,有空间复杂度:S(n)=O(f(n))。

浙公网安备 33010602011771号