正文

图的邻接矩阵创建算法2006-05-08 23:08:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/jixian/13748.html

分享到:

#include <iostream>#include<stdio.h>using namespace std; #define FINITY 5000  //此处用5000代表最大#define m 20         //最大顶点树typedef char vertextype;  //顶点值类型typedef int edgetype;       //权值类型 typedef struct{ vertextype vexs[m];      //顶点值类型 edgetype edges[m][m];    //邻接矩阵 int n,e;                //顶点总数 和 边树}mgraph;                    //邻接矩阵表示的图类型 // 图的邻接矩阵创建算法   void createmgraph1(mgraph *g){ int i,j,k,w; cout<<"\n输入图的顶点数:"; cin>>g->n; cout<<"\n输入图的边数:"; cin>>g->e; getchar();                      //取消输入的换行符  cout<<"\n请输入顶点信息:"; for(i=0;i<g->n;i++) {  char c;  cin>>c;  g->vexs[i]=c; }  //初始化邻接矩阵  for(i=0;i<g->n;i++)  for(j=0;j<g->n;j++)   if(i==j)     g->edges[i][j]=0;   else    g->edges[i][j]=FINITY;       cout<<"\n输入边的信息:\n"; cout<<"\ni--->j  值为w.\n"; for(k=0;k<g->e;k++) {  cin>>i;                //? 怎么把输入格式转为 i----->j??? //  cout<<"---->";  cin>>j;    cin>>w;  g->edges[i][j]=w;  g->edges[j][i]=w;               //此处建立无向图  }}    // 输出此无向图 void print(mgraph g){ cout<<"\n此无向图共有"<<g.n<<"个结点,  "<<g.e<<"条边.\n"; cout<<"\n结点信息为:"; for(int i=0;i<g.n;i++)  cout<<g.vexs[i]<<"  "; cout<<"\n邻接矩阵图为:\n"; for(i=0;i<g.n;i++) {  for(int j=0;j<g.n;j++)   cout<<g.edges[i][j]<<"     ";  cout<<endl; }} int main(){ mgraph g;  createmgraph1(&g);  print(g);}  

阅读(5931) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册