图之邻接矩阵存储实现

#include<iostream>
using namespace std;
#define MAXSIZE 100
#define INFINITY	65535
typedef int Arc;
typedef char Vertex;
struct MGraph
{
	Vertex V[MAXSIZE];
	Arc Edge[MAXSIZE][MAXSIZE];
	int Edgenum;
	int Vexnum;
};

void CreateGraph(MGraph *G)
{
	printf("请输入顶点数和边数:");
	scanf("%d%d",&(G->Vexnum),&(G->Edgenum));
	char c;
	c=getchar();
	int i,j;
	for(i=0;i<G->Vexnum;i++)
		for(j=0;j<G->Vexnum;j++)
			G->Edge[i][j]=INFINITY;

	printf("请输入顶点信息(char)型\n");
	for(i=0;i<G->Vexnum;i++)
		scanf("%c",&(G->V[i]));
	c=getchar();
	int w=0;
	for(int k=0;k<G->Edgenum;k++)
	{
		printf("请输入(vi,vj)的下标i,j和权值w:");
		scanf("%d%d%d",&i,&j,&w);
		c=getchar();
		G->Edge[i][j]=w;
		G->Edge[j][i]=w;
	}

}

void printGraph(MGraph *G)
{
	printf("含有%d个顶点,%d条边\n",G->Vexnum,G->Edgenum);
	printf("打印顶点表信息:\n");
	for(int i=0;i<G->Vexnum;i++)
		printf("%c ",G->V[i]);
	printf("\n");
	printf("各结点相连情况:\n");
	for(int j=0;j<G->Vexnum;j++)
	{
		for(int k=0;k<G->Vexnum;k++)
		{
			printf("%d\t",G->Edge[j][k]);
		}
		printf("\n");
	}
}
void main()
{
	MGraph G;
	CreateGraph(&G);
	printGraph(&G);

}


原图:


运行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值