`
feel
  • 浏览: 21249 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
最近访客 更多访客>>
社区版块
存档分类
最新评论

图的邻接矩阵

阅读更多

1.图的邻接矩阵表示法
     在图的邻接矩阵表示法中:
 ① 用邻接矩阵表示顶点间的相邻关系
 ② 用一个顺序表来存储顶点信息

2.图的邻接矩阵(Adacency Matrix)
     设G=(V,E)是具有n个顶点的图,则G的邻接矩阵是具有如下性质的n阶方阵:
     

  
【例】下图中无向图G5 和有向图G6 的邻接矩阵分别为Al 和A2
    从图的邻接矩阵表示法中可以得到如下结论:   (1)对于n个顶点的无向图,有A(i,i)=0,1≤i≤n。
  (2)无向图的邻接矩阵是对称的,即A(i,j)=A(j,i),1≤i≤n,1≤j≤n。
  (3)有向图的邻接矩阵不一定对称的。因此用邻接矩阵来表示一个具有n个顶点的有向图时需要n2 个单位来存储邻接矩阵;对有n个顶点的无向图则需存入上(下)三角形,故只需n(n+1)/2个单位。
  (4)无向图的邻接矩阵的第i行(或第i列)非零元素的个数正好是第i个顶点的度TD(vi )。
  (5)有向图的邻接矩阵的第i行(或第i列)非零元素的个数正好是第i个顶点的出度OD(vi
)[或入度ID(vi )]。


3.网(带权值的图)的邻接矩阵
     若G是网络,则邻接矩阵可定义为:
        
  

  其中:
      wij 表示边上的权值;
      ∞表示一个计算机允许的、大于所有边上权值的数。
【例】下面(a)是一个带权图,(b)是对应的邻接矩阵的存储结构

       (a)带权图                        (b)邻接矩阵

4.邻接矩阵的图类
const int MaxVertices=10;
const int MaxWeight=32767;
class AdjMWGraph
  { private:
   int Vertices[10];           //顶点信息的数组
   int Edge[MaxVertices][MaxVertices];         //边的权值信息的矩阵
    int numE;            //当前的边数
    int numV;            //当前的顶点数
    public: ………;          //公有函数
    private: ………;          //私有函数
  }
  注意:
     ① 在简单应用中,可直接用二维数组作为图的邻接矩阵(顶点表及顶点数等均可省略)。
     ② 当邻接矩阵中的元素仅表示相应的边是否存在时,EdgeTyPe可定义为值为0和1的枚举类型。
     ③ 无向图的邻接矩阵是对称矩阵,对规模特大的邻接矩阵可压缩存储。
     ④ 邻接矩阵表示法的空间复杂度S(n)=0(n2 )。

分享到:
评论

相关推荐

    有向图邻接矩阵c++运算操作

    有向图邻接矩阵c++运算操作 基本操作 邻接矩阵 c++实现

    图邻接矩阵的问题(加减及乘除的运算)

    根据给定文件的标题、描述、标签以及部分内容,本文将围绕“图邻接矩阵的问题(加减及乘除的运算)”这一主题展开,并详细解释其中涉及到的关键知识点。 ### 图邻接矩阵概述 邻接矩阵是一种表示图的方式,主要用于...

    无向图邻接矩阵的遍历

    无向图邻接矩阵是一种表示图数据结构的方法,特别适合用于描述图中节点之间的连接关系。在邻接矩阵中,我们用一个二维数组来存储图的信息,其中的每个元素表示两个节点之间是否存在边。如果节点i和节点j之间有一条边...

    图之邻接矩阵详解(C语言版).rar

    本文将详细讲解一种常见的图数据结构表示方法——邻接矩阵,并通过C语言实现相关操作。邻接矩阵是图理论中的重要概念,用于描述图中节点之间的连接关系。 首先,我们需要理解什么是图。在计算机科学中,图是由顶点...

    代码 有向图关联矩阵和邻接矩阵的相互转换算法代码

    代码 有向图关联矩阵和邻接矩阵的相互转换算法代码代码 有向图关联矩阵和邻接矩阵的相互转换算法代码代码 有向图关联矩阵和邻接矩阵的相互转换算法代码代码 有向图关联矩阵和邻接矩阵的相互转换算法代码代码 有向图...

    有向图邻接矩阵创建和Euler回路判定(含报告)

    写C程序,随机给出n*n的邻接矩阵,并打印输出邻接矩阵,以及有向图的边的个数,每个顶点的度,并判断该图中是否存在Euler回路: (1)如果为n阶,则随机产生一个n*n的邻接矩阵; (2)输出邻接矩阵,边的个数,每个...

    数据结构学习--图的邻接矩阵和邻接表存储

    图的存储方式主要有两种:邻接矩阵和邻接表。这两种存储方式各有优缺点,适用于不同的场景。 邻接矩阵是一种二维数组,其中的元素表示图中顶点之间的边。对于无向图,邻接矩阵是对称的,即如果顶点i和顶点j之间有一...

    类模板无向图邻接矩阵和深度及广度优先搜索遍历

    在这个主题中,我们将深入探讨如何使用类模板实现无向图的邻接矩阵表示法,以及如何通过深度优先搜索(DFS)和广度优先搜索(BFS)遍历这样的图。 首先,让我们理解邻接矩阵的概念。邻接矩阵是一个二维数组,其中的...

    图的邻接矩阵和邻接表的建立与输出.docx

    图的邻接矩阵和邻接表的建立与输出 图的邻接矩阵和邻接表是图论中两个重要的数据结构,将图的信息存储在矩阵或表中以便于图的处理和计算。 在《数据结构》中,严蔚敏教授详细讲解了图的邻接矩阵和邻接表的建立与...

    无向图的邻接矩阵存储及输出

    ### 无向图的邻接矩阵存储及输出详解 在计算机科学中,图是一种重要的数据结构,用于表示对象之间的关系。图由顶点(或节点)和边组成,其中边可以是有向的或无向的。本文将详细介绍无向图的邻接矩阵存储方式以及...

    tusuanfa.rar_tusuanfa_图 邻接矩阵_最短路径

    在这个特定的案例中,"tusuanfa.rar_tusuanfa_图 邻接矩阵_最短路径" 提供了一个VC++6.0实现的程序,它涉及到图的邻接矩阵表示法以及寻找图中的最短路径算法。下面我们将详细探讨这两个核心概念。 首先,**邻接矩阵...

    通过邻接矩阵计算网络的聚类系数

    如果图中的节点i与节点j之间有一条边,那么邻接矩阵的元素M[i][j](或M[j][i],取决于定义方式)为1;反之,如果无边,则为0。对于无向图,邻接矩阵是对称的;对于有向图,可能不是。 聚类系数,又称为团度或局部...

    代码 无向图关联矩阵和邻接矩阵的相互转换算法代码

    代码 无向图关联矩阵和邻接矩阵的相互转换算法代码代码 无向图关联矩阵和邻接矩阵的相互转换算法代码代码 无向图关联矩阵和邻接矩阵的相互转换算法代码代码 无向图关联矩阵和邻接矩阵的相互转换算法代码代码 无向图...

    图的邻接矩阵存储和邻接表存储

    在计算机科学中,我们通常使用两种主要的方法来存储图:邻接矩阵和邻接表。这两种方法各有优缺点,适用于不同的场景。 ### 邻接矩阵 **邻接矩阵** 是一种直观的图存储方式,它使用一个二维数组来表示图中的边。...

    图的邻接矩阵存储代码

    图邻接矩阵的存储代码 是我话了一个晚上编写的,足够全面

    头歌数据结构图的邻接矩阵存储及遍历操作

    ### 头歌数据结构图的邻接矩阵存储及遍历操作 #### 一、邻接矩阵存储 在数据结构中,图是一种常见的非线性结构,用于表示对象间的关系。根据边是否有方向,图可以分为有向图和无向图。而根据边是否具有权重值,又...

    实现图的邻接矩阵和邻接表存储

    在编程中,有多种方法来存储图,其中两种常用的方法是邻接矩阵和邻接表。这两种方法各有优缺点,适用于不同类型的图和不同的操作需求。 邻接矩阵是一种二维数组,其中的每个元素代表两个顶点之间是否存在边。如果...

    根据邻接矩阵绘制矩阵网络图Matlab程序

    在这个场景下,我们关注的是如何使用Matlab编程语言根据邻接矩阵来绘制网络图,特别是在节点活跃度自动分级的情况下。邻接矩阵是网络分析的基础,它是一个二维数组,用于表示网络中各个节点之间的连接状态。矩阵中的...

Global site tag (gtag.js) - Google Analytics