
图论
thessuye
这个作者很懒,什么都没留下…
展开
-
浅谈链式前向星
功能:图论中存储点,边和遍历查找;介绍:edge[i].w 第i条边的权重 edge[i].to 第i条边的终点 edge[i].next 与第i条边同起点的上一条边的存储位置 head[i] 以i为起点的第一条边的存储位置1. 添加点边数据#define maxn 10005int he原创 2015-05-21 13:10:56 · 695 阅读 · 0 评论 -
Dijstra算法代码描述
图论学过很多次的最短路问题,其中Dijstra算法是一个经典的解决求图中某一点到其他所有点的算法,思想理解了很多遍,但是不知道代码怎么写!如果要理解算法的话网上很多博客都有讲的,这里把代码和运行过程来分享一下。代码是根据http://blog.youkuaiyun.com/hackerain/article/details/6055925稍加修改的,原文是使用文件读写,但是没有把文件贴出来,这里我自己原创 2016-07-20 15:35:03 · 2223 阅读 · 1 评论 -
Floyd算法及代码演示
Floyd算法与Dijstra的区别在于Floyd计算的是任意两点间的最短路径。可以这样思考,首先是各点都不允许借路通过,然后依次从第一个点到最后一个点均允许借路通过,每次均取最短路,则到最后求得的就是各个点的最短路。状态转移公式为Dk(i,j)=min(Dk-1(i,j),Dk-1(i,k)+Dk-1(k,j));测试样例#include #include #include原创 2016-07-20 18:19:39 · 5981 阅读 · 0 评论 -
Kruskal算法
算法实现思想及功能 Kruskal算法是求解最小生成树的一种算法。实现思想是首先将边按照权值大小排列,然后从权值最小的边开始加入最小生成树中,但是如果出现新加入的边与原来的图连成环,则不取该边。(这里使用查找根节点的方法实现,如果相同,则成环。如果不同,则加入,并把新加入的边的权值根节点更新。)代码展示#include <iostream>#include <cstring>#includ原创 2016-08-02 08:26:32 · 1027 阅读 · 0 评论