逻辑结构
线性结构
线性表
一对一
特殊的线性表
栈
只能在一端(栈顶)进行插入和删除
应用
括号匹配
表达式求值
实现递归
DSF
保存现场
队列
只能在一端(队尾)添加,另一端(队首)删除
应用
数据缓冲
树的层次遍历
BSF
串
模式匹配
BF算法
KMP算法
推广
数组
压缩存储矩阵
对角矩阵
三角矩阵
对称矩阵
稀疏矩阵
数组元素是矩阵元素
数组元素是(行,列,矩阵元素)三元组
广义表
形式定义
LS=(a1,a2,...,an)
构成
表头
Head(LS)=a1
表尾
Tail(LS)=(a2,...,an)
表头可以为单个元素,也可以为广义表,而表尾必须为广义表
逻辑结构
线性
多层次
B=(a,B)深度无穷,长度为2
存储
顺序表
链表
单链表
双链表
单循环链表
双循环链表
静态链表
指针实现
保存下个元素的地址
借助数组实现
保存下个元素的下标
非线性结构
树
一对多
分类
二叉树
分类
空树
0个结点
非空树
结点子树个数的度量
=0,叶子
={1,2},分支
性质
有序树
第i层最多有2^i-1个结点
高度为h的二叉树,最多有2^h-1个结点
n0=n2+1
h=[logn] + 1
遍历方式
前序遍历
中序遍历
后序遍历
层次遍历
递归(栈)实现
队列实现
存储
顺序
链式
特殊二叉树
线索二叉树
平衡二叉树
二叉排序树
哈夫曼树
注意插入删除方法
一般树
存储
双亲表示法
孩子表示法
孩子兄弟表示法
遍历
先根遍历
后根遍历
层次遍历
应用
并查集
推广
森林(包含多棵树)
图
多对多
存储
邻接矩阵
邻接表
遍历
BSF
DSF
应用
最小生成树
Prims算法
Kruscal算法
单远最短路径
Dijsktra算法
拓扑排序
AOV网
顶点Vi表示活动
边<Vi,Vj>表示Vi先于Vj进行
AOE网
顶点表示事件
边表示活动
集合
存储结构
顺序存储
逻辑相邻&物理相邻
链接存储
逻辑相邻不要求物理相邻
索引存储
附加索引表
散列存储
根据键值计算地址
Hash函数
构造方法
直接定址
除留余数
数字分析
平方取中
折叠
处理冲突方法
开放地址法
线性探测法
平方探测法
再散列法
伪随机序列
拉链法
装填因子
数据的运算