邻接矩阵

题目描叙:

无向图的表示方法邻接矩阵,需打印到屏幕。有权。

分析:邻接矩阵的核心思想便是顶点表和边表。

我们可以定义一个结构体,里面包含一个顶点表(即一个vexs一维数组),一个边表(即一个arc二维数组),还有两个整形变量(即一个表示为顶点数,另外一个表示为边数)。我们将二维数组初始化为无穷大(在此程序中用65535表示无穷大)。如果顶点i到顶点j有边(即此两个顶点是连接的),那个arc[ i ][ j ]里面的值即顶点i与顶点j之间的权。因为,二维数组一开始初始化为无穷大。所以我们可以知道,如果二维数组里面的值不是无穷大的,则此值的下标i和下标j分别代表顶点i和顶点j。且i和j顶点是有边连接的。
因为是无向图,所以顶点i能到顶点j就表示了顶点j能到顶点i。且他们之间的权是相同的。最后打印出来会发现,二维数组是关于主对角线对称的。 我在这个程序中将下标i和下标j相同的位置的值置位0(即权为0)。

#include"stdio.h"
typedef char VertexType;  //顶点类型
typedef int EdgeType;    //边的类型
#define  MAXVEX 100   //最大顶点数
#define INFINITY 65535 //表无穷。权的无穷大,即权不存在
typedef struct
{
    VertexType vexs[MAXVEX];    //顶点集
    EdgeType arc[MAXVEX][MAXVEX]; //边集
    int numVertexes,numEdges;//图中的顶点数和边数
}MGraph;
//建立一个无向网图的邻接矩阵表示
void CreateMG
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值