/*狄斯奎诺算法(dijkstra)<邻接表> */
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define maxn 0x3f3f3f3f
#define NN 100000
struct stu
{
int v_num; /* 邻接表编号*/
float len; /* 边长*/
struct stu *next ;
};
/*n表示节点个数,u-->表示源节点*/
stu gong[NN] ;
void Dijkstra(int n,int u,float dis[],int p[])
{
int i,j,t;
float temp;
bool *ss = ( bool *)malloc(sizeof(bool)) ; //逐步的放进ss{}集合中
stu * pstu;
for(i=;i<n;i++) //init(dis,p)
{
dis[i]=maxn;
p[i]=-; //表示前一个节点为root;
ss[i]=false; //flase-->表示没有在ss集合中
}
if(!(pstu=gong[u].next)) //表示只有自己一个节点
return ;
while(pstu)
{
dis[pstu->v_num] = pstu->len ;
p[pstu->v_num] = u ; //表示该顶点
pstu=pstu->next;
}
dis[u]=;
ss[u]=true; //表示这个顶点在ss集合中
for(i=;i<n;i++)
{
temp=maxn;
t=u;
for(j=;j<n;j++)
{
if(!ss[j]&&temp>dis[j])
{
temp=dis[j];
t=j;
}
}
if(t==u) break; //说明没有最路!
ss[t]=true;
pstu=gong[t].next;
while(pstu)
{
if(!ss[pstu->v_num]&&dis[pstu->v_num]>dis[t]+pstu->len)
{
dis[pstu->v_num]=dis[t]+pstu->len;
ss[pstu->v_num]=true;
}
pstu=pstu->next;
}
}
free(ss);
}

狄斯奎诺(dijkstra 模板)的更多相关文章

  1. HDU-2544 最短路 Dijkstra模板题

    题目链接:https://vjudge.net/problem/HDU-2544 题意: 题目要求找到节点1到节点n之间的一条最短路 分析: Dijkstra模板题 单源最短路径,可以用dijkstr ...

  2. Dijkstra 模板 最短路

    转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents ------------------------------------------ ...

  3. hdu 2544 hdu 1874 poj 2387 Dijkstra 模板题

    hdu 2544  求点1到点n的最短路  无向图 Sample Input2 1 //结点数 边数1 2 3 //u v w3 31 2 52 3 53 1 20 0 Sample Output32 ...

  4. 单源最短路——Dijkstra模板

    算法思想: 类似最小生成树的贪心算法,从起点 v0 每次新拓展一个距离最小的点,再以这个点为中间点,更新起点到其他点的距离. 算法实现: 需要定义两个一维数组:①vis[ i ] 表示是否从源点到顶点 ...

  5. 51nod 1459 迷宫游戏 dijkstra模板

    链接:迷宫游戏 问题 - 51Nod  http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1459 1459 迷宫游戏  基准 ...

  6. CCCC L2-001 紧急救援 floyd改的dijkstra模板 (记录路径) L3 天梯地图

    https://www.patest.cn/contests/gplt/L2-001 题解:求最短路的条数,并输出点的权值最大的路径,用priority_queue会wa两个点,原因不明. 于是又学了 ...

  7. Dijkstra模板 dj斯特拉

    图论里非常常用的dijkstra,自己加了个路径查找,做个模板吧: ; struct Edge { int from,to,dist; Edge(int u, int v, int d):from(u ...

  8. 洛谷 P3371 【模板】单源最短路径(弱化版) && dijkstra模板

    嗯... 题目链接:https://www.luogu.org/problem/P3371 没什么好说的,这是一个最短路的模板,这里用的dijkstra做的... 注意: 1.dijkstra和邻接表 ...

  9. HDU 2544 最短路 【Dijkstra模板题】

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2544 思路:最短路的模板题 Dijkstra 算法是一种类似于贪心的算法,步骤如下: 1.当到一个点时, ...

随机推荐

  1. Servlet字符编码过滤器

    在Java Web程序开发中,由于Web容器内部使用编码格式并不支持中文字符集,所以,处理浏览器请求中的中文数据就会出现乱码的现象.由于Web容器使用了ISO-8859-1的编码格式,所以在Web应用 ...

  2. [leetcode]Construct Binary Tree from Preorder and Inorder Traversal @ Python

    原题地址:http://oj.leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ 题意:根 ...

  3. C# 引用访问权限,很多老手都不懂

    同样代码表现的不同行为   创建基类(Super)和派生类(Sub)每个类有一个字段field和一个公共方法getField,并且使用内联的方式初始化为1,方法getField返回字段field.C# ...

  4. 基础学习:C#中float的取值范围和精度

    float类型的表现形式: 默认情况下,赋值运算符右侧的实数被视为 double. 因此,应使用后缀 f 或 F 初始化浮点型变量,如以下示例中所示: float x = 3.5F; 如果在以上声明中 ...

  5. windows server 2008 远程桌面(授权、普通用户登录)~ .

    大家好,因公司上ERP系统,用户端需要远程到服务器,但大家都知道微软默认只有2个,所以没有办法达到我公司的要求. 在网上找了很久也没有找到合适的文章,要不就这里说一点,那里说一点,没有一个全的,还有很 ...

  6. 关于html5获取用户地理位置

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...

  7. Java基础(三):修饰符、运算符、循环结构和分支结构

    一.Java修饰符: Java语言提供了很多修饰符,主要分为以下两类:访问修饰符和非访问修饰符.修饰符用来定义类.方法或者变量,通常放在语句的最前端. 1.访问控制修饰符: Java中,可以使用访问控 ...

  8. Design Your Own Protocol In Five Minutes

    https://mayaposch.wordpress.com/2011/10/03/design-your-own-protocol-in-five-minutes ---------------- ...

  9. 【nodejs】使用response输出中文但页面中文乱码的处置

    两点要确认: 1.head里有<meta charset="utf-8"/> 2.js文件编码为utf-8格式. 第二点往往容易被忽略,所以出现乱码. 附上代码: 'u ...

  10. shiro实现基于机构加username的验证以及rememberMe

    一.Shiro的一些经验与rememberMe实现原理 Shiro的登录(Authorization)和验权(Authentication).默认都是依据usernameUserName来做验证和授权 ...