zoukankan      html  css  js  c++  java
  • 图-图的表示方法

    图的表示法

    • 邻接矩阵表示法-表示顶点间邻接关系的矩阵
      • 无向图的邻接矩阵

    (1)无向图的邻接矩阵式对称矩阵,可以压缩存储;有n个结点的无向图需要的存储空间为n(n+1)/2

    (2)无向图的中,顶点vi的度是邻接矩阵中的第i行元素之和

      • 有向图的邻接矩阵

      (1)有向图的邻接矩阵不一定对称,有n个顶点的有向图需要存储空间为n2

      (2)有向图中:顶点vi的出度是邻接矩阵中第i行元素之和,顶点vi的出度是邻接矩阵中第i列元素之和

      • 网的邻接矩阵(网是带权的图)

      • 邻接矩阵的数据类型定义
        • 1 #define MaxVertexNum 100    //顶点数目最大值
          2 typedef char VertexType;    //顶点数据类型
          3 typedef int EdgeType;    //带权图中边上权值的数据类型,如果仅表示表示边存在与否,可以定义为0,1的枚举类型
          4 typedef struct
          5 {
          6     VertexType Vex[MaxVertexNum];    //顶点表
          7     EdgeType Edge[MaxVertexNum][MaxVertexNum];    //邻接矩阵边表
          8     int vexnum, arcnum;    //图的当前顶点和弧数
          9 }MGraph;
    • 邻接表表示法
      • 处理
        • 图中顶点用一个一维数组存储。顶点数组中,每个数据元素还需要存储指向第一个邻接点的指针,以便于查找该结点的边信息
        • 图中每个顶点vi的所有邻接点构成一个线性表,由于邻接点的个数不定,所以用单链表存储,无向图中称为顶点vi的边表,有向图则称为顶点vi作为弧尾的出边表
      • 无向图的邻接表

     

      • 有向图的邻接表

      • 网的邻接表
        • 对于带权值的网图,可以在边表结点定义中在增加一个weight的数据域,存储权值即可

      • 邻接表的数据类型定义
        •  1 #define MaxVertexNum 100 //顶点数目的最大值
           2 typedef char VertexType;
           3 typedef int EdgeType;
           4 typedef struct ArcNode    //边表结点
           5 {
           6     int adjVex;        //该弧所指向的顶点的位置
           7     struct ArcNode *next;        //指向下一条弧的指针
           8     //infoType info        //带权图的权值
           9 }ArcNode;
          10 typedef struct VNode    //顶点表结点
          11 {
          12     VertexType data;    //顶点的信息
          13     ArcNode *first;        //指向第一条依附该顶点的弧的指针
          14 }VNode, AdjList[MaxVertexNum];
          15 typedef struct
          16 {
          17     AdjList    vertices;    //邻接表
          18     int vernum, arcnum;        //图的顶点数和弧数
          19 }ALGraph;            //ALGraph是以邻接表存储的图的类型

     

  • 相关阅读:
    批量关闭远程计算机
    Tomcat6+IIS6集成及Tomcat负载均衡与Tomcat集群配置
    负载均衡服务器session共享的解决方案
    实现PostgreSQL数据库服务器的负载均衡
    OPENQUERY (TransactSQL)
    Webarok: 用 Web 浏览器控制 Amarok2
    Nginx+tomcat负载均衡session问题解决
    CorelDRAW 编写和运行宏指令
    FB/IB多代事务结构详解对FB事务最好的讲解
    VS2005[C#] 操作 Excel 全攻略
  • 原文地址:https://www.cnblogs.com/KBryant/p/11616218.html
Copyright © 2011-2022 走看看