第一章 绪论
1.1 数据结构的基本概念
数据(data):是对客观事物的符号表示,在计算机科学中指所有能够输入到计算机并且能够被计算机程序处理的符号的总称。 数据元素(data element):是数据的基本单位,但不是最小单位;通常作为一个整体进行考虑和处理。一个数据元素通常有若干个数据项(data item)组成。比如一本书的书目信息可以作为一个数据元素,而书目信息中的每一页的书名、作者名等就是数据元素中的数据项。 数据对象(data object):是性质相同的数据元素的结合,是数据的一个子集。例如:数据是人,那么男人就是数据对象,张三这个人的信息就是数据元素,张三的姓名、身高就是数据项。 数据结构(data structure):是相互之间存在一种或多种特定关系的数据元素的集合。我们在解决问题时,会引入一些数据元素,引入的这些数据元素之间并不是孤立存在的,而是有一定的关系,这种数据元素之间的关系称之为结构。 基本结构类型: 1、集合;数据元素同属于一个集合,没有别的关系。这个集合的概念和数学上的集合概念是一样的。 2、线性结构;结构中的数据元素之间存在一个对一个的关系。最典型的线性结构:数组,单链表等 3、树形结构;结构中数据元素之间存在一对多的关系。比较典型的树形结构:二叉树 4、图状结构又称为网状结构;结构中数据元素之间存在多对多的关系。 所谓的数据之间的“关系”可以理解为数据元素之间的逻辑关系,又称为逻辑结构。 数据结构在计算机中的表示称为物理结构,又称为存储结构。 逻辑关系在计算机中有两种表示方法:顺序映像和非顺序映像 存储结构对应的分为两种:顺序存储结构和链式存储结构 顺序映像中有顺序存储结构和链式存储结构,非顺序映像中只有链式存储结构。 数据类型:是一个值的集合以及定义在这个集合上的一组操作的总称。 抽象数据类型:是一个数学模型以及定义在该模型上的一组操作。
1.2、算法和算法分析
算法的特点: 1、有穷性:一个算法必须在有限的步骤,有限的时间内结束。 2、确定性:算法中每一条指令都必须有且只有一种确切的含义。 3、可行性:一个算法必须能够通过已经实现的基本运算在有限的步骤、时间内实现。 4、输入:有零个或多个输入。 5、输出:有一个或多个输出,并且与输入有着某种特定的联系。
算法设计要求: 1、正确性:一个算法设计出来应当能够满足具体的问题需求。 2、可读性:在满足需求的情况下,越简单越好。 3、健壮性:当输入非法的时候能够做出适当的反应,不会产生莫名其妙的错误。 4、高效率与低存储:高效率指的是算法的执行时间,也就是时间复杂度越低,效率就越高;低存储指的是算法执行过程中所占用的存储空间,也就是空间复杂度越低越好。
|