这是基本数据结构及其算法的C++实现,涉及单链表、双链表、栈 、二叉树、并查集、哈夫曼树、平衡二叉树、二叉搜索树、堆、哈希表、图以及各种排序算法。
- CSDN博客链接:单链表
- 主要介绍了单链表的基本操作。包括建表,插入,删除,逆序,判断是否为空,合并等。我这里写的是带有头结点的单链表,头结点保存链表长度。
- 主要介绍了双链表的基本操作。包括建表,插入,删除,逆序,判断是否为空,合并,冒泡排序等。
- CSDN博客链接:栈的应用——表达式求值
- 主要介绍了栈的应用——表达式求值。具体思路就是首先把输入的中缀表达式转换为后缀表达式,然后再根据后缀表达式进行计算求值。这份代码只能实现10以内的加减乘除。
- CSDN博客链接:二叉树的构建及其遍历算法
- 主要介绍了二叉树的创建、先中后三种遍历方式的递归实现,再详细介绍先中后三种遍历方式的非递归实现与层次遍历。
- CSDN博客链接:二叉搜索树
- 主要介绍了二叉搜索树的创建、查找指定值结点、查找最大最小值、插入指定值、删除指定值,插入最大最小值、删除最大最小值操作
- CSDN博客链接:平衡二叉树
- 主要介绍了平衡二叉树的单左旋、单右旋、右左旋、插入指定值、删除指定值操作
- 主要介绍了哈夫曼树与哈夫曼编码的建立
- CSDN博客链接:并查集
- 主要介绍了并查集的初始化、查找和并操作
- CSDN博客链接:最小堆
- 主要介绍了最小堆的插入、删除与建堆的操作
- 主要介绍了最大堆的插入、删除与建堆的操作
- CSDN博客链接:图的遍历(上)——邻接矩阵表示
- 主要介绍了邻接矩阵存储下的图的建立、BFS、DFS的递归版本与非递归版本
- CSDN博客链接:图的遍历(下)——邻接表
- 主要介绍了邻接表存储下的图的建立、BFS、DFS的递归版本与非递归版本
- CSDN博客链接:最小生成树算法(上)——Prim(普里姆)算法
- 主要介绍了邻接矩阵存储下的图生成最小生成树的Prim(普里姆)算法
- CSDN博客链接:最小生成树算法(下)——Kruskal(克鲁斯卡尔)算法
- 主要介绍了邻接矩阵存储下的图生成最小生成树的Kruskal(克鲁斯卡尔)算法
- CSDN博客链接:最短路径算法(上)——迪杰斯特拉(Dijikstra)算法
- 主要介绍了邻接矩阵存储下的图的单源最短路径算法——迪杰斯特拉(Dijikstra)算法
- CSDN博客链接:最短路径算法(下)——弗洛伊德(Floyd)算法
- 主要介绍了邻接矩阵存储下的图的多源最短路径算法——弗洛伊德(Floyd)算法
- CSDN博客链接:拓扑排序
- 主要介绍了邻接矩阵存储下的图的拓扑排序算法
- CSDN博客链接:散列表(上)——开放定址法
- 主要介绍了开放地址法的哈希表,冲突处理策略为线性探测
- CSDN博客链接:散列表(下)——分离链接法
- 主要介绍了分离链接法的哈希表