资源简介
如标题所示,一个dijkstra的c代码,标准输入输出
代码片段和文件信息
#include
#include
#define MAXINT 32767
int arr[15][15];
int rec[15];
void init()
{
int i j;
int tx ty t;
FILE *in;
in = fopen(“test.in“ “r“);
for (i=0; i<15; i++)
{
for (j=0; j<15; j++)
{
arr[i][j] = MAXINT;
}
arr[i][i] = 0;
}
for (i=0; i<30; i++)
{
fscanf(in “%d %d %d“ &tx &ty &t);
arr[tx][ty] = t;
arr[ty][tx] = t;
}
}
void dijkstra()
{
int i j k;
int visit[50] = {0};
int min minj;
for (i=1; i<=10; i++)
{
rec[i] = arr[1][i];
}
visit[1] = 1;
for (i=1; i<=10; i++)
{
min = MAXINT;
for (j=1; j<=10; j++)
{
if (rec[j] < min && visit[j] != 1)
{
min = rec[j]; //这里是一个相当容易错的地方!!!对算法的理解要透彻!
minj = j;
}
}
visit[minj] = 1;
if (min == MAXINT)
{
return;
}
for (j=1; j<=10; j++)
{
if (rec[minj] + arr[minj][j] < rec[j] && visit[j] == 0 && minj != j)
{
rec[j] = rec[minj] + arr[minj][j];
}
}
}
}
void Disp()
{
int i;
for (i=1; i<=10; i++)
{
printf(“%d “ rec[i]);
}
printf(“\n“);
}
int main()
{
init();
dijkstra();
Disp();
getch();
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 17614 2009-08-13 08:02 test.exe
文件 275 2009-08-10 20:06 test.in
文件 1187 2009-08-14 08:30 test.c
----------- --------- ---------- ----- ----
19076 3
相关资源
- yuv播放器cif格式c语言
- shallow water equation c++ code
- C++实现小型数据库DBMS,具备建表以及
- HOUGH_LINE.cpp
- 基于51单片机控制的篮球比赛计时、计
- C语言车辆管理系统
- 模拟的DBMS
- MFC窗体设计
- 实现用c++产生高斯噪声
- c++远程控制源代码
- 自己写的远控代码 C++
- C++课程设计公司人员管理系统
- MFC自定义列表listcontrol
- C++程序设计 Y.Daniel Liang著 习题答案
- DOS菜单系统用C编写
- 纯C++方式生成复杂格式的excel文件(
- super pi源码
- 马踏棋盘的源程序,C语言编写,数据
- MFC利用CSOCKET实现的小小聊天室
- 超级经典嵌入式软件笔试题库
- 用c语言实现一元多项式的加减乘运算
- 清华大学C++课件
- 多级反馈队列调度算法C语言源代码
- g711音频编解码(C/C++)实现
- VC++ MFC MSCOMM VS2010 手把手学会串口收发
- 车辆信息管理系统课程设计完整源代
- kinect+opengl 生成并显示点云
- C++ 家庭理财管理系统
- MFC开发的数学公式编辑器
- 简易电子表格代码与文档
评论
共有 条评论