数据结构学习笔记
AaronXueNF
这个作者很懒,什么都没留下…
展开
-
数据结构笔记[3] Dijkstra算法
Dijkstra算法 Dijkstra算法用于求解连通图中的最短距离问题,对于指定一点,该算法可求解其到其余各点的最短距离。 该算法需要两个辅助数组distance[MAXVEX], last_vertex[MAXVEX],前者用于存储各点到所求点的最短路程,后者用于存储其他的点到所求点路径的上一点。 基本步骤可以概括为: 初始化,distance[ ]数组为v[i]到v0的距离, last_vertex[]数组为v0(起始点) 查找距v0最近的点k,将其标记为已找到最短路径 计算未被标记的点经由k点到v原创 2020-12-20 22:13:38 · 217 阅读 · 0 评论 -
数据结构笔记[2] Kruskal算法
Kruskal算法 同Prim算法,Kruskal算法用于求解连通图中最小生成树问题。 该算法从直观上比较好理解,其过程为: 将图中的所有边按照权值大小从小到大排序 依次选择最小的边,只要该边加入生成树中不会成环,就将这条边加入生成树 Kruskal算法的实现 实现分辨顶点加入树中是否会导致成环的方法是将所有顶点分类,在一棵树中的为同样一类,其过程见 http://data.biancheng.net/view/41.html 这里用的方法和上边资料的方法相同但在表述上稍有差别。 建立一个数组,命名为p原创 2020-12-17 21:57:28 · 261 阅读 · 0 评论 -
数据结构笔记[1] Prim算法
Prim算法 Prim算法用于求解连通图中最小生成树问题。即在一个n个顶点的连通图中找出n-1条边,形成一棵树并使所有边的权值之和最小。 Prim算法的核心是将顶点集分类,分为加入生成树的点(记为集合A)和剩余的点(记为集合B)。在迭代的过程中,不断将B中到A权值最小的一点加入A中(即遍历B中所有点,对每一点遍历其到A中所有点的权值,挑权值最小的那一点加入A),直至全部顶点加入集合A 以下图为例: 其生成过程为: Prim算法的实现 在Prim算法中,关键在于两个数组,adjvex、lowcost。刚原创 2020-12-14 21:46:27 · 930 阅读 · 0 评论