C++邻接矩阵构造无向图和无向网

本文介绍了如何利用C++实现无向图和无向网的邻接矩阵表示。通过创建一个5*5的邻接矩阵,并根据顶点和边的关系填充矩阵,来构建一个具有6条边的无向图。对于无向网的构造,初始矩阵值设为无穷大,并处理权值的输入和输出。
摘要由CSDN通过智能技术生成

假设我们要创建一个无向图的邻接矩阵

在这里插入图片描述

#include<iostream> 
#define OK 1
#define ERROR 0
#define MaxNum 100		//最大顶点数 
typedef char VexType;	//顶点数据类型为char型 
typedef int VarType;	//边的数据类型为int型 
typedef int Status;
using namespace std;
struct  DIAgram{
	VexType vexs[MaxNum];	//顶点数组 
	VarType vars[MaxNum][MaxNum];	//邻接矩阵
	int vexnum,arcnum;	//图的总顶点数和总边数 
};
int place(DIAgram G,char v)
{
	for(int i=0;i<G.vexnum;i++)
	{
		if(G.vexs[i]==v)	//返回顶点下标 
		return i;
	}
	return ERROR;
}
Status CreateUDG(DIAgram &G)
{	
	int i,a,b;char v1,v2;
	cin>>G.vexnum>>G.arcnum;	//输入图的总顶点数和总边数 
	for(i=0;i<G.vexnum;i++)
	{
		cin>>G.vexs[i];			//输入每个顶点的信息 
		for(int j=0;j<G.vexnum;j++)
		G.vars[i][j]=0;	//矩阵的每个元素即边初始化为0 
	}
	for(i=0;i<G.arcnum;i++)
	{
		cin>>v1>>v2;			//输入一条边两头的的两个顶点 
		a=p
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值