C语言的高手请帮啊

来源:百度知道 编辑:UC知道 时间:2024/05/23 14:41:34
我现在 要用C来实现一个算法,即最小费用最大流算法的实现,采用的是最短路径算法,而最短路径是用dijksta算法实现的。我C不好,到现在也想不出来怎么实现。所以诚请各位高手帮忙。其中图的原始资料从文本文档读入。例如这样的一个网络图:
8
12
arc1 1 2 6 7
arc2 1 6 2 2
arc3 1 4 2 3
arc4 2 3 3 3
arc5 4 5 1 4
arc6 2 7 3 3
arc7 4 7 3 3
arc8 6 3 1 1
arc9 6 5 1 3
arc10 3 8 4 5
arc11 7 8 0 3
arc12 5 8 2 4
即一个8个顶点12条弧的网络,下面的5列分别表示弧号,弧的起点,弧的终点,对应弧上单位流费用,弧的容量
如果可以给出dijkstra算法的程序也可。
定当感激涕零,今生来世都将不忘您的恩德!
我要的是dijkstra算法时求最小费用最大流,而且原始数据按照我给出的形式。不用邻接矩阵。

你要dijkstra算法?
网络上和书上都有啊!
可以看看adrew写的《计算机网络》

用boost的graph库,里头有dijkstra算法

其实弗洛依德算法与Dijkstra算法差不多,我没有Dijkstra算法,下面我给你找了个网页,你自己看看吧,一般CSDN上的人发的都是正确的
http://blog.csdn.net/ctu_85/archive/2006/11/17/1393130.aspx

//* * * * * * * * * * * * * * * * * * * * * * * *
//*CHAPTER :5 (5_6) *
//*PROGRAM :最短路径 *
//*CONTENT :弗洛依德算法 *
//* * * * * * * * * * * * * * * * * * * * * * * *
#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define INFINITY 10000 //定义权值的最大值
#define MAX_NUM 20 //图的最大顶点数
enum BOOL {False,True};
typedef struct
{
int arcs[MAX_NUM][MAX_NUM]; //邻接矩阵
int vexnum,arcnum;