⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 建立图矩阵.cpp

📁 数据结构学习中常用的程序.用c语言编写.vc++6.0运行通过
💻 CPP
字号:
#include <stdio.h>

#define MaxVertexNum 100				//最大顶点数,应由用户定义
typedef char VertexType;				//顶点类型应由用户定义
typedef int EdgeType;					//边上的权值类型应由用户定义
typedef struct {
	VertexType vexs[MaxVertexNum];		//顶点表
	EdgeType edges[MaxVertexNum][MaxVertexNum];
										//邻接矩阵,可看作边表
	int n,e;							//图中当前的顶点数和边数
}MGraph;

void main()
{
	void CreateMGraph(MGraph *G);
	void PrintMGraph(MGraph *G);
	MGraph G;
	CreateMGraph(&G);
	PrintMGraph(&G);
}

void CreateMGraph(MGraph *G)
{	//建立无向网的邻接矩阵表示
	int i,j,k,w;
	printf("请输出顶点数和边数:");
	scanf("%d%d",&G->n,&G->e);			//输入顶点数和边数
	printf("请输出顶点信息:");
	for(i=0;i<G->n;i++)					//读入顶点信息,建立顶点表
		while((G->vexs[i]=getchar())=='\n');
	for(i=0;i<G->n;i++)	printf("%c",G->vexs[i]);
	for(i=0;i<G->n;i++)
		for(j=0;j<G->n;j++)
			G->edges[i][j]=0;			//邻接矩阵初始化
	for(k=0;k<G->e;k++) {				//读入e条边,建立邻接矩阵
		printf("\n请输出第%d边的起点、终点和权:",k+1);
		scanf("%d%d%d",&i,&j,&w);		//输入边(vi,vj)上的权w
		G->edges[i][j]=w;
		G->edges[j][i]=w;
	}
}

//打印无向图的邻接矩阵
void PrintMGraph(MGraph *G)
{
	int i,j;
	printf("无向图的邻接矩阵为:\n");
	for(i=0;i<G->n;i++)
	{
		for(j=0;j<G->n;j++)
			printf("%d\t",G->edges[i][j]);
		printf("\n");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -