资源简介
#include
//#define LEN sizeof(struct NODE)
#define N 10
#define MAX_TYPE 10000
#define ZERO_TYPE 0
/*定义图的邻接链表*/
struct NODE /*邻接表节点的数据结构*/
{
int v_num;/*邻接顶点的编号*/
int len;/*邻接顶点与该顶点的费用*/
struct NODE *next;/*下一个邻接顶点*/
};
NODE *node=new NODE[N]; /*多段邻接链表头节点*/
int cost[N];/*在多段决策中各个定点到收点的最小费用*/
int *route=new int[N];/*从原点到收点的最短路径上的顶点编号*/
int path[N];/*在阶段决策中,各个顶点到收点的最短路径上的前方顶点编号*/
代码片段和文件信息
#include
//#define LEN sizeof(struct NODE)
#define N 10
#define MAX_TYPE 10000
#define ZERO_TYPE 0
/*定义图的邻接链表*/
struct NODE /*邻接表节点的数据结构*/
{
int v_num;/*邻接顶点的编号*/
int len;/*邻接顶点与该顶点的费用*/
struct NODE *next;/*下一个邻接顶点*/
};
NODE *node=new NODE[N]; /*多段邻接链表头节点*/
int cost[N];/*在多段决策中各个定点到收点的最小费用*/
int *route=new int[N];/*从原点到收点的最短路径上的顶点编号*/
int path[N];/*在阶段决策中,各个顶点到收点的最短路径上的前方顶点编号*/
int fgragh(int n)
{int i;
struct NODE *pnode;
int *path=new int[n];
int min_cost*cost=new int[n];
for(i=0;i {cost[i]=MAX_TYPE;
path[i]=-1;
route[i]=0;
}
cost[n-1]=ZERO_TYPE;
for(i=n-2;i>=0;i--)
{
pnode=node[i].next;
while(pnode!=NULL){
if(pnode->len+cost[pnode->v_num] {cost[i]=pnode->len+cost[pnode->v_num];
path[i]=pnode->v_num;
}
pnode=pnode->next;
}
}
i=0;
while((route[i]!=n-1)&&(path[i]!=-1))
{
- 上一篇:Linux下串口通讯程序C++源代码
- 下一篇:利用c语言写的理发馆排队问题模拟仿真
评论
共有 条评论