![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
路过南京
这个作者很懒,什么都没留下…
展开
-
如何用C++写Floyd求最短路 数组实现版本!!!
实现原理其实就是动态规划 !!! 迪杰斯特拉实现原理是贪心,弗洛伊德实现原理就是动态规划。 例题: #include <bits/stdc++.h> using namespace std; const int N=210,INF=1e9; int dist[N][N]; //初始化数组 void init(int n){ for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i==j) dist[i...原创 2020-09-04 19:52:02 · 157 阅读 · 0 评论 -
如何用C++写Dijkstra求最短路 数组实现版本!!!
最近重学C++算法,树与图的最小路径算法的代码学习。 常用的数据结构书上讲两种最短路径方法分别是(朴素迪杰斯特拉算法(Dijkstra)和弗洛伊德(Floyd)算法)。 我也暂时只准备记录更新这两种数据结构方法。 看题目: 给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值。 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。 例如: 3 3 1 2 2 2 3 1 1 3...原创 2020-09-04 19:03:06 · 218 阅读 · 0 评论 -
最短路径算法 Dijkstra算法 Floyd算法 简述
原作者:https://blog.csdn.net/jerry81333/article/details/54772709 可以直接点击原作者的博客,真心写的很好!!! 又称迪杰斯特拉算法,是一个经典的最短路径算法,主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止,使用了广度优先搜索解决赋权有向图的单源最短路径问题,算法最终得到一个最短路径树。时间复杂度为O(N^2) 执行动画: ...转载 2019-12-07 09:57:14 · 260 阅读 · 0 评论 -
图之最小生成树Kruskal方法c++实现
克鲁斯卡尔算法 克鲁斯卡尔算法的基本思想是以边为主导地位,始终选择当前可用(所选的边不能构成回路)的最小权植边。所以Kruskal算法的第一步是给所有的边按照从小到大的顺序排序。这一步可以直接使用库函数qsort或者sort。接下来从小到大依次考察每一条边(u,v)。 具体实现过程如下: <1> 设一个有n个顶点的连通网络为G(V,E),最初先构造一个只有n个顶点,没有边的非连通...原创 2019-12-07 09:17:43 · 299 阅读 · 0 评论 -
图之最小生成树prime方法c++实现
算法描述: 普利姆算法求最小生成树时候,和边数无关,只和定点的数量相关,所以适合求稠密网的最小生成树,时间复杂度为O(n*n)。 算法过程: 1.将一个图的顶点分为两部分,一部分是最小生成树中的结点(A集合),另一部分是未处理的结点(B集合)。 2.首先选择一个结点,将这个结点加入A中,然后,对集合A中的顶点遍历,找出A中顶点关联的边权值最小的那个(设为v),将此顶点从B中删除,加入集合A...原创 2019-12-06 19:46:31 · 588 阅读 · 0 评论 -
线索二叉树(建立与遍历)
线索二叉树的建立很需要思维能力,尽量把原理弄懂在去查看代码。 二叉树线索化 二叉树的遍历是按照一定的规则把二叉树中的节点按照一定的次序排列成线性序列进行访问的,实质上就是对一个非线性结构进行线索化操作,使得每个节点(除第一个和最后一个外)都有前驱和后继节点,有时为了运算方便需要记录这些前驱和后继节点,称为二叉树线索化,而对于不同的遍历规则,又分为先序线索二叉树,中序线索二叉树(...原创 2019-11-30 09:53:43 · 1061 阅读 · 0 评论 -
二叉树的建立与遍历(包含非递归方式)
最近在学习数据结构与c++语言,学到了树的这一章。学习了二叉树的创建与遍历,特此做一个小的总结。水平有限请多包涵。 c++自己实现了列栈和队列与线性表结构,分别是stack、deque、list。 数据的逻辑结构 1.线性结构 1.1线性表 1.2栈(特殊线性表,先进后出) 1.3队列(特殊线性表,先进先出) 1.4字符串、数组、广义表 2.非线机构 2.1树...原创 2019-11-26 19:04:32 · 236 阅读 · 0 评论 -
二叉树的后序遍历方式的补充(包含非递归方式)
个人感觉后序遍历真的比前序遍历与中序遍历的非递归方式麻烦好多,上一篇文章写完后思考了好久。写了好几次死循环。。。。今天参考了别人的代码才写出来。 链接如下: https://blog.csdn.net/happyjacob/article/details/83116702 #include <bits/stdc++.h> using namespace std; typede...原创 2019-11-27 17:01:46 · 110 阅读 · 0 评论