无向图邻接矩阵的建立,难度不大,源码如下:
#include<iostream>
using namespace std;
typedef struct
{
char nodes[100];//顶点表
int arcs[100][100];//边表 邻接矩阵 相邻接为1 否则为0
int num_nodes,num_arcs;//顶点数和边数
}MGraph;//以邻接矩阵存储的图类型
void CreatGraph(MGraph *&G)
{
cout<<"please enter num is nodes and arcs:";
cin>>G->num_nodes>>G->num_arcs;//输入顶点数和边数
cout<<"please enter name is each vertex:";
for(int i=0;i<G->num_nodes;i++)
{
char ch;
cin>>ch;
G->nodes[i]=ch;//输入顶点信息
}
for(int p=0;p<G->num_nodes;p++)
{
for(int q=0;q<G->num_nodes;q++)
G->arcs[p][q]=0;//给每个顶点初始化 为0没有邻接
}
cout<<"please enter the relationship between each vertex and the value:";
for(int j=0;j<G->num_arcs;j++)
{
int a,b,c;
cin>>a>>b>>c;
while(a==b)
{
cout<<"error!please enter again:";
cin>>a>>b;
}
G->arcs[a][b]=c;//输入邻接的边,赋值他们的关系
}
}
void display(MGraph *&G)//输出邻接矩阵
{
for(int i=0;i<G->num_nodes;i++)
{
for(int j=0;j<G->num_nodes;j++)
{
cout<<G->arcs[i][j]<<" ";//输出邻接矩阵表
}
cout<<endl;
}
}
int main()
{
MGraph *g=new MGraph;
CreatGraph(g);
display(g);
return 1;
}