408-数据结构-第一章-绪论

184 阅读2分钟

1.1.1基本概念

同样的数据元素,可组成不同的数据结构;不同的数据元素,可组成相同的数据结构。

1.1.2 数据结构三要素

线性结构

数据元素之间是一对一的关系。除了第一个元素,所有元素都有唯一前驱;除了最后一个元素,所有元素都有唯一后继。

树形结构

数据元素之间是一对多的关系。

图结构

数据元素之间是多对多的关系。

数据的存储结构

顺序存储、链式存储、索引存储、散列存储,后面三种称为非顺序存储。运算的定义是针对逻辑结构的,指出运算的功能;运算的实现是针对存储结构的,指出运算的具体步骤

数据类型、抽象数据类型

1)原子类型

其值不可再分。

2)结构类型

其值可以再分解为若干成分的数据类型。

抽象数据类型

ADT,定义一个ADT,就是“定义”了一个数据结构。确定了ADT的存储结构,才能“实现”这种数据结构。

1.1.3习题

  • 字符串、队列、栈都是线性数据结构。
  • 线性表,顺序表,有序表,链表,数组的概念的区别与联系,详见blog.csdn.net/wq6ylg08/ar…
  • 循环队列是用顺序表表示的队列,是一种数据结构
  • 栈是一种抽象数据类型,可以采用顺序存储或链式存储,只表示逻辑结构
  • 链式存储设计时,结点内的存储单元地址一定连续,详见blog.csdn.net/qq_45783949…

1.2.1算法的基本概念

有穷性:算法必须是有穷的,程序可以是无穷的。确定性:相同的输入只能得出相同的输出。可行性:基本运算执行有限次。输入:有零个或多个输入。输出:有一个或多个输出。

1.2.2算法效率

时间复杂度

加法规则:多项相加,只保留最高阶的项,且系数变为1。乘法规则:多项相乘,都保留。

常见的渐近复杂度

见书上第六页。常对幂指阶。 结论1: 顺序执行的代码只会影响常数项,可以忽略。

计算时间复杂度的方法

blog.csdn.net/vpurple_/ar…

1.2.3 习题

某算法的时间复杂度为O(n^2),表明该算法的(执行时间与n^2成正比)。

tips: 时间复杂度T(n)是问题规模n的函数。

注意:统考真题中经常把log2写成log,此时默认底数为2。