图|图的存储结构:邻接矩阵、邻接表(C语言)

图的存储结构

一、图的邻接矩阵表示

1. 图的邻接矩阵存储类型

1)基本思想:
-一维数组vexs[ ]:存储图中顶点信息;
-二维数组arcs[ ][ ]:存储图中各顶点间关系(1,有关系;0,没关系);
-整型变量vexNum:存储顶点数;
-整形变量arcNum:存储边(弧)数。
2)图的邻接矩阵定义:

#include <stdio.h>
#define MAXSIZE 20		//图中顶点的最大数目
#define INFINITY 9999		//表示无穷大

typedef struct {
   
   
    VertexType vexs[MAXSIZE];	//存储顶点信息(VertexType为顶点的数据类型)
    int arcs[MAXSIZE][MAXSIZE];	//存储顶点的关系
    int arcNum, vexNum;		//存储顶点数、弧数
}MGraph;			//定义图的类型
2. 图的邻接矩阵生成算法

图的邻接矩阵生成算法主要步骤:
(1)输入图的顶点个数和边的个数;
(2)输入顶点信息存储在一维数组vexs[ ]中;
(3)初始化邻接矩阵(对角线为0,其余为 ∞ );
(4)依次输入每条边存储在arcs中。

void creatGraph(MGraph &G) {
   
   
    int i, j, from, to;
    
    for(i=0; i<MAXSIZE; i++) {
   
   					//初始化邻接矩阵
        for(j=0; j<MAXSIZE; j++) {
   
   
            if(i == j) {
   
   
                G.arcs[i][j] = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值