最小生成树普利姆算法
int CreateUDN(MGraph &G) { int r,s,w; char v1,v2; char u; cout<<"输入顶点个数:"; cin>>G.vexnum; cout<<"输入弧的个数:"; cin>>G.arcnum; cout<<"输入顶点:"; for(int i=0;i<G.vexnum;++i) { cin>>u; G.vexs[i]=u; } for(i=0;i<G.vexnum;++i) { for(int j=0;j<G.vexnum;++j) { G.arcs[i][j].adj=INFINITY; G.arcs[i][j].info=NULL; } } /*ifstream in("MGraph.txt",ios::in); if(!in) { cout<<"文件打开错误!"<<endl; exit(0); } for(int k=0;k<G.arcnum;++k) { cout<<"输入一条边的两个顶点及权值:"; in>>v1>>v2; in>>w; cout<<w; r=LocateVex(G,v1); s=LocateVex(G,v2); G.arcs[r][s].adj=w; G.arcs[s][r]=G.arcs[r][s]; } in.close();*/ for(int k=0;k<G.arcnum;++k) { cout<<"输入一条边的两个顶点及权值:"; cin>>v1>>v2; cin>>w; r=LocateVex(G,v1); s=LocateVex(G,v2); G.arcs[r][s].adj=w; G.arcs[s][r]=G.arcs[r][s]; } return 1; }
姓名:常中平 071220141001*/
#include <iostream.h>
#include <fstream.h>
#include <Windows.h>
#define INFINITY 32768
#define MAX_VERTEX_NUM 20
typedef enum{DG,DN,UDG,UDN}GraphKind;
typedef struct ArcCell
{
int adj;
char *info;
}ArcCell,AdjMatrix[MAX_VERTEX_NUM ][MAX_VERTEX_NUM ];
typedef struct
{
char vexs[MAX_VERTEX_NUM];
AdjMatrix arcs;
int vexnum,arcnum;
GraphKind kind;
}MGraph;
//------------------------------------------------------------------
int LocateVex(MGraph G,char u)
{
for(int i=0;i<G.vexnum;i++)
{
if(G.vexs[i]==u)
break;
}
return i;
//-------------------------------------------------------------------
int CreateUDN(MGraph &G)
{
int r,s,w;
char v1,v2;
char u;
cout<<"输入顶点个数:";
cin>>G.vexnum;
cout<<"输入弧的个数:";
cin>>G.arcnum;
cout<<"输入顶点:";
for(int i=0;i<G.vexnum;++i)
{
cin>>u;
G.vexs[i]=u;
}
for(i=0;i<G.vexnum;++i)
{
for(int j=0;j<G.vexnum;++j)
{
G.arcs[i][j].adj=INFINITY;
G.arcs[i][j].info=NULL;
}
}
/*ifstream in("MGraph.txt",ios::in);
if(!in)
{
剩余5页未读,继续阅读
- 粉丝: 1
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助