首页 > > > C++无向图的邻接矩阵
这是最基本的简历无向图邻接矩阵表示的代码:
#include<iostream>
using namespace std;
typedef char VertexType;
typedef int EdgeType;
#define MAXVEX 100
#define INFINITY 65535
typedef struct
{
VertexType vexs[MAXVEX];
EdgeType arc[MAXVEX][MAXVEX];
int numVertexes,numEdges;
}MGraph;
int main(MGraph *G)
{
int i,j,k,w;
cout<<"输入定点数和边数:"<<endl;
cin>>G->numVertexes>>G->numEdges;
for(i=0;i<G->numVertexes;++i)
cin>>G->vexs[i];
for(i=0;i<G->numVertexes;++i)
for(j=0;j<G->numVertexes;++j)
G->arc[i][j]=INFINITY; //邻接矩阵初始化
for(k=0;k<G->numEdges;++k)
{
cout<<"输入边(vi,vj)上的下标i、下标j和权值w:"<<endl;
cin>>i>>j;
G->arc[i][j]=w;
G->arc[j][i]=G->arc[i][j];//由于是无向图,矩阵对称
}
for(i=0;i<G->numVertexes;++i)
for(j=0;j<G->numVertexes;++j)
{cout<<G->arc[i][j];}
return 0;
}编译可以通过,但是执行一步,也就是输入了定点数和边数之后,就自动停止运行了,调试的时候,到第一个for循环,就跳出对话框“Unhandled exception in Graph.exe:0xC0000005:Access Violation”,这是哪里出了问题呢?
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2001/viewspace-3128526/ ,如需转载,请注明出处,否则将追究法律责任。