数据结构知识框架总结:
1、 数据存储结构
顺序存储结构 用数组实现
链式存储结构 用节点实现(数据元素+指针)
2、 数据逻辑结构
- 线性结构
线性表:
顺序存储结构:顺序表
链式存储结构:单链表、循环单链表、双向链表、仿真链表
堆栈:后进先出
顺序堆栈、链式堆栈
栈底、栈顶(入栈、出栈)
应用:括号匹配问题、表达式计算问题
队列:先进先出
顺序队列(假溢出问题)、顺序循环队列,及队空队满判断问题
链式队列、
队头:出队
队尾:入队
应用:回文
串:串的顺序存储结构
串的链式存储结构
串的模式匹配:Brute-Force算法、KMP算法
数组:基本类型的数组、对象类型的数组
集合:数据元素无序且不重复
矩阵
特殊矩阵
稀疏矩阵
压缩存储
- 树型结构
树:树是递归定义的
无序的
树的表示法:直观表示法、形式化表示法、凹入表示法
树的存储结构:双亲表示法、孩子表示法、双亲孩子表示法、孩子兄弟表示法
二叉树:有序的
满二叉树一定是完全二叉树
二叉树所有节点的表示形式:空节点、无左右子树节点、只有左子树节点、只有右子树节点、左右子树均存在节点
二叉树的存储结构:顺序存储结构、链式存储结构、仿真指针存储结构
二叉树的遍历:前序、中序、后序、层序
- 图型结构
3、 算法
查找:
静态查找:
无序序列查找
有序序列查找:顺序查找、二分查找
动态查找:二叉排序树、B_树
排序:
插入排序:
直接插入排序 稳定
希尔排序 不稳定
选择排序:
直接选择排序 稳定
堆排序 不稳定
交换排序:
冒泡排序 稳定
快速排序 不稳定
归并排序 稳定
基数排序 稳定
递归:
直接或间接调用自身
一定有出口
应用:阶乘函数、二分查找
4、 哈希表
数据元素与其在内存中的位置之间存储在某种函数关系的存储结构
哈希函数:储留余数法、直接定址法、数字分析法
哈希冲突解决方法:
开放地址法:
线性探查法
平方探查法
为随机数法
链表法