数据结构是根据数据之间的关系建立非数学模型从而解决现实问题,它的应用十分广泛。例如学校的线上图书馆的建立和运行,人机对弈机器如何选择最优决策等等。
数据
数据:可以被计算机记录和处理的信息
基本单位:数据元素(节点,元素)由若干个数据项构成
最小单位:数据项
数据对象:性质相同的数据的集合,是数据的子集
逻辑结构
- 集合结构: 元素之间没有关联
- 线性结构 : 一对一(线性表)
- 树形结构 : 一对多 (二叉树)
- 图形结构 : 多对多
物理结构
- 顺序存储结构 相对位置 随机存取(位置)
- 链式存储结构 指针(地址)(链表)
顺序储存结构就相当于每个元素都住在同一排街道,当你知道第一个元素的地址并知道你要找的是第几个元素你就很容易的知道你要操作的元素在哪里。所以顺序储存结构可以很容易的改变任意元素的值。注意:顺序存储结构可以储存树形结构和图形结构。
链式存储结构并不需要大块的存储空间,每一个存储空间的末尾都存有下一个元素的位置。就像张三知道李四的位置,李四知道王五的位置。如果你想知道王五的位置那么你必须先找到张三再找到李四才能找到王五。链式存储结构想要对中间的元素必须从第一个开始。
所以我们在数据的逻辑结构上定义操作算法(制定规则),在存储结构上借助数据的运算(增删改查排)进行目标的实现。
数据类型: 规定变量的内存可能范围和操作.
e.g.int 类型隐含该变量只能为整数内存为4字节只能进行整型的操作
抽象数据类型ADT:
数据抽象
数据封装
ADT=(D,R,P)对象,关系,操作
算法是对特定问题求解的一种描述
算法的构成=控制结构+原操作
分析时间复杂度:找到嵌套最深的语句估算执行次数