• 大小: 182KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-01-02
  • 标签: C  Dijkstra  

资源简介

本程序使用C语言实现了Dijkstra算法。程序中,定义好邻接矩阵,可以计算出任一节点到其他所有节点的最短路径,并打印路径与长度。其中对最短路径的存储是依据所得到的生成树,可以减少内存空间占用。

资源截图

代码片段和文件信息

//给定邻接矩阵,采用Dijkstra算法计算某一节点到其他所有节点的最短路径
#include
#define uchar unsigned char
#define N 6 //节点数目
int adj[N][N]={ //邻接矩阵,adj[i][j]表示节点i至节点j的直连路径长度,其中99表示i与j不直连
{019949999} 
{10399199}
{99309912}
{499990199}
{9911104}
{999929940}};
//节点source至其他节点的最短路径表
struct shpt
{
char source; //源节点
struct //这些路径刚好构成一个生成树,有N-1条链路,为方便处理,加上一条从source到source的长度为0的链路
{
char start; //链路起点
char end; //链路终点
}link[N];
int len[N]; //source到所有节点的最短路径长度
}xto;
void main()
{
int ij;
char min_nmin_vsour; //min_n:最小值对应节点,min_v:最小值,sour:源节点
int dis_tmp[N]; //当前最短路径值
char trans[N]; //以谁为中转
char decided[N]={0}; //节点i的最短路径已确定

//初始化
printf(“输入起始节点:“);
scanf(“%d“&sour);sour--

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-08-09 01:06  Dijkstra算法\
     目录           0  2015-08-09 01:05  Dijkstra算法\Debug\
     文件      184398  2015-08-09 01:05  Dijkstra算法\Debug\Dijkstra算法.exe
     文件      182244  2015-08-09 01:05  Dijkstra算法\Debug\Dijkstra算法.ilk
     文件        4544  2015-08-09 01:05  Dijkstra算法\Debug\Dijkstra算法.obj
     文件      203800  2015-08-09 01:05  Dijkstra算法\Debug\Dijkstra算法.pch
     文件      361472  2015-08-09 01:05  Dijkstra算法\Debug\Dijkstra算法.pdb
     文件       33792  2015-08-09 01:05  Dijkstra算法\Debug\vc60.idb
     文件       45056  2015-08-09 01:05  Dijkstra算法\Debug\vc60.pdb
     文件        2313  2015-08-09 00:54  Dijkstra算法\Dijkstra算法.cpp
     文件        3475  2015-08-09 01:04  Dijkstra算法\Dijkstra算法.dsp
     文件         532  2015-08-09 01:04  Dijkstra算法\Dijkstra算法.dsw
     文件       41984  2015-08-09 01:06  Dijkstra算法\Dijkstra算法.ncb
     文件       48640  2015-08-09 01:06  Dijkstra算法\Dijkstra算法.opt
     文件         780  2015-08-09 01:05  Dijkstra算法\Dijkstra算法.plg

评论

共有 条评论