| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1072 人关注过本帖
标题:[求助]高手来帮我修改一下“最小生成树”问题
只看楼主 加入收藏
Poseidon
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2004-11-2
收藏
 问题点数:0 回复次数:0 
[求助]高手来帮我修改一下“最小生成树”问题

#include"stdio.h" #include<stdlib.h> #define Max Vertexnum 100 typedef enum{false,true}Boolean;//FALSE为0,TRUE为1 Boolean visited[Max VertexNum]; typedef int Vertextype; typedef struct node//边表节点 { int adjvex;//邻接点域 struct node *next;//链域 } typedef struct vnode//顶点表节点 { Vertextype vertex;//顶点域 EdgeNode *firstedge;//边表头指针 }VertexNode; typedef VertexNode AdjList[Max VertexNum];//AdjList是邻接表类型

typedef struct ALGraph { AdjList adjlist;//邻接表 int n,e;//图中当前顶点数和边数 }Graphic; typedef struct tree { VertexNode *tnode; EdgeNode *tedge; }MSt; MSt *mst; void CreatGraphic(Graphic *G)//建立无向图的邻接表表示 { int i,j,k; EdgeNode *s; scanf("%d%d",&G->n,&G->e);//读入顶点数和边数 for(i=0;i<G->n;i++)//建立顶点表 { G->adjlist[i].vertex=getchar();//读入顶点信息 G->adjlist[i].firstedge=null;//边表置为空表 } for(k=0;k<G->e;k++)//建立边表 { scanf("%d%d",&i,&j);//读入边(vi,vj)的顶点对序号 s=(EdgeNode *)malloc(sizeof(EdgeNode));//生成边表节点 s->adjlist=i;//邻接点序号为j* s->next=G->adjlist[i].firstedge; G->adjlist[i].firstedge=s;//将新的节点*s插入顶点vi的边表头部 s=(EdgeNode*)malloc(sizeof(EdgeNode)); s->adjvex=i;//邻接点序号为i* s-.next=G->adjlist[j].firstedge; G->adjlist[j].firstedge=s;//将新节点*s插入顶点vj的边表头部 } } void PrimMST(Graphic *G,vertextype r)//求图G的以r为根的MST,结果放在T=(U,TE)中 { int k,n; initCandidateSet(...);//初始化:设置初始的轻边候选集 for(k=0;k<n-1;k++) { (u,v)=SelectLiShtEdge(...);//选取轻边(u,v) // ModifyCandidateSet(...); } } void main() { Graphic graph; Vertextype r=3; CreatGraphic(&graph); PrimMst(&graph,r); }

这是我看书遇到的一个题,中间void PrimMST

是伪代码,小弟我实在不行,还望高手给改一下,让这个程序能够运行出来!先谢谢了!

搜索更多相关主题的帖子: 最小生成树 
2004-12-15 21:24
快速回复:[求助]高手来帮我修改一下“最小生成树”问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014477 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved