目录
一、数据结构与算法的由来
二、数据结构的逻辑结构
1、逻辑结构:描述数据元素之间的逻辑关系,与数据的存储无关,独立于计算机,是从具体问题抽象出来的数学模型。
2、逻辑结构分为:集合结构、线状结构、树结构、图结构。
①集合结构:数据元素之间除了属于同一集合之外,别无其他关系。
②线状结构:数据元素之间存在一对一的关系。只有一个开始和一个终端结点且所有结点最多只有一个直接前趋和一个后继。
③树结构:数据元素之间存在一对多的关系。
④图结构:数据元素之间存在多对多的关系。
3、几种逻辑结构层次图
三、数据结构的存储结构
1、物理结构(存储结构):数据元素及其关系在计算机存储器中的结构(存储方式),是数据结构在计算机中的表示。
2、存储结构通常要求既要存储各数据元素的数据,又要存储数据元素之间的逻辑关系。
3、存储结构分为顺序存储结构和链式存储结构。
4、顺序存储结构:用一组连续的存储单元依次存储数据元素,需要占用一整块存储空间,可以借助程序设计语言的数组类型描述。
5、链式存储结构:无需占用一整块存储空间,但为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后继元素的存储地址。所以链式存储结构通常借助于程序设计语言的指针类型来描述。
四、数据结构总结
1、逻辑结构与存储结构的关系:
■存储结构是逻辑关系的映象与元素本身的映象。
■逻辑结构是数据结构的抽象,存储结构是数据结构的实现。
■两者综合起来建立了数据元素之间的结构关系。
2、概念小结
五、算法与算法分析
1、算法是解决问题的一种方法或一个过程,考虑如何将输入转换成输出,一个问题可以有多种算法。
2、程序是用某种程序设计语言对算法的具体实现。
程序=数据结构+算法
数据结构通过算法实现操作,算法根据数据结构设计程序。
六、算法时间复杂度的分析
分析算法时间复杂度的基本方法:
1、找出语句频度最大的那条语句作为基本语句
2、计算基本语句的频度得到问题规模n的某个函数f(n)
若f(n)是m次多项式,最高次幂是m,则该算法的时间复杂度为O(m)。算法的时间复杂度由最高次幂决定。
3、取其数量级用符号"O" 表示
4、举例如下图所示:
七、抽象数据类型的理解
1、定义:抽象数据类型就是用已有的数据类型如int、char等数据类型来定义新的数据类型。
2、抽象数据类型的三大概念:抽象数据类型的定义、抽象数据类型的表示、抽象数据类型的实现。
①抽象数据类型的定义又包括定义该数据类型的数据对象、数据关系、基本操作,抽象数据类型的数据对象和数据关系统称为该数据类型的逻辑结构。
②抽象数据类型的表示就是该数据类型在内存中的存储方式即该数据类型的存储结构。
③抽象数据类型的实现就是解决问题的算法和程序。
3、而抽象数据类型的逻辑结构和存储结构又统称为数据结构。