前言
数据结构一直是学习的重点和难点,对于任何一种数据结构,几乎都要从三个方面进行学习,分别是数据的存储,数据的遍历,相关典型算法。以下罗列各数据结构的知识点和关键字。
一、线性表
顺序表,单链表,静态链表(数据链表,备用链表),动态链表,双向链表,循环链表,双向循环链表
二、栈
顺序栈,链栈
三、队列
顺序队列,链队列
四、字符串
存储(定长存储,堆存储,链表存储)
字符串的模式匹配算法(BF和KMP算法)
五、数组和广义表
矩阵(对称矩形,上下三角矩阵,稀疏矩形)
稀疏矩阵(三元组,行逻辑三元组,十字链表存储)
广义表,使用链表存储结构,使用union联合体
六、树
二叉树,结点,满二叉树,完全二叉树
遍历,先序,中序,后序,层次(使用队列实现,双亲出队,孩子入队),高度
线索二叉树,提高遍历效率,null结点存储直接前驱或直接后继。双向线索二叉树
其他标示法:双亲表示法,孩子表示法,孩子兄弟表示法(二叉树和森林的相互转换)
哈夫曼树:最优二叉树,带权路径长度最小,从叶子结点开始生成。计算哈夫曼编码。
七、图
顺序存储,邻接矩阵法
数组1:存储结点信息
数组2:二维数组存储结点关系
链式存储:
邻接表,十字链表,邻接多重表
深度优先搜索(回溯法),广度优先搜索(队列层次遍历)
最短路径算法:迪杰斯特拉算法(单点到其他点最短距离),弗洛伊德算法(所有点到其他点最短距离)
八、查找
静态查找表:顺序查找,折半(二分)查找,分块查找
动态查找表:二叉排序树,平衡二叉树(AVL),B-Tree,B+Tree(数据库,文件系统等),红黑树
哈希表,散列表,哈希函数,冲突处理
九、排序
直接插入排序
折半插入排序
2路插入排序
表插入排序
希尔排序(缩小增量排序)
冒泡排序
快速排序
简单选择排序
树形选择排序(锦标赛排序)
堆排序
归并排序
基数排序(特殊排序算法,不直接比较值的大小)