关于数据结构中无向图邻接矩阵的建立(C++)

无向图邻接矩阵的建立,难度不大,源码如下:

#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;
}

猜你喜欢

转载自blog.csdn.net/weixin_43626529/article/details/86744156