迪杰斯特拉邻接矩阵存储方式

原创 2015年07月08日 21:06:14
#include <stdio.h>
int main()
 {
    int a[101][101];
    int i,j,c,d,e,n,m,min,u,k;
    int book[101];
    int dis[101];//1到其余点的的距离
    scanf("%d%d",&n,&m);
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)
        if (i==j)
             a[i][j]=0;
             else a[i][j]=10000;
             for (i=1;i<=m;i++)
             {
                 scanf("%d%d%d",&c,&d,&e);
                 a[c][d]=e;
             }
             book[1]=1;
             for (i=2;i<=n;i++)
                book[i]=0;
                for (i=1;i<=n;i++)
                    dis[i]=a[1][i];//初始化dis[i]为1直接到i的距离
             for (i=1;i<=n-1;i++)//1到剩下n-1个点的距离
             {
                  min=10000;
                 for (j=1;j<=n;j++)
                 {
                     if ((min>dis[j])&&(book[j]==0))
                     {
                        min=dis[j];//找到在未确定的点中离1最近的点,并记录下来
                        u=j;
                     }

                 }
                 book[u]=1;
                 for (k=1;k<=n;k++)
                    if ((a[u][k]!=10000)&&(dis[u]+a[u][k]<dis[k]))//若u能到k且k值不确定且比原来直接到小(只要判断u->i是否为无穷大,因为1->u已经在之前判断过)
                    dis[k]=dis[u]+a[u][k];
             }
             for (i=1;i<=n;i++)
                printf("%d ",dis[i]);
             return 0;
 }







相关文章推荐

迪杰斯特拉算法(可打印最短路径)

#include #include #include using namespace std; #define INFINITY 65535//无边时的权值 #define MAX...
  • cxllyg
  • cxllyg
  • 2012年05月26日 15:40
  • 13418

最短路 迪杰斯特拉算法(邻接矩阵)

理解了好几天的最短路,今天有点眉目了 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以...

matlab-线性代数 对称矩阵的判断

镇场诗:慈心积善融学习,技术誓为大家学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。 //////////////////////////////////////////////...

Matlab判断矩阵是否为对称矩阵

if A==A'%是对称矩阵 if A~=A'%不是对称矩阵
  • cckit
  • cckit
  • 2014年11月26日 01:13
  • 1888

HDU 1874 Dijkstra (迪杰斯特拉)(队列及邻接矩阵)

AC代码(1):/* 关于三个数组:map数组存的为点边的信息,比如map[1][2]=3,表示1号点和2号点的距离为3 dis数组存的为起始点与每个点的最短距离,比如dis[3]=5,表示起始点与3...

图的邻接表实现迪杰斯特拉算法求最短路径

存储结构定义: typedef struct ArcNode { int adjvex;//该弧所指向的顶点的位置 struct ArcNode *nextarc;//指向下一条弧的指针 in...

地杰斯特拉邻接矩阵

  • 2012年06月06日 15:55
  • 1KB
  • 下载

迪杰斯特拉算法

  • 2014年05月14日 14:37
  • 3KB
  • 下载

poj 2066 一个人的旅行 最短路 迪杰斯特拉和弗洛伊德

一个人的旅行,题目链接,click here.Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O...

迪杰斯特拉C语言

  • 2016年01月17日 10:00
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:迪杰斯特拉邻接矩阵存储方式
举报原因:
原因补充:

(最多只允许输入30个字)