zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然数据结构学习笔记:图的邻接多重表存储结构

    为了提高在无向图中操作顶点的效率,本节学习一种新的适用于存储无向图的方法——邻接多重表。
    注意,邻接多重表仅适用于存储无向图或无向网。
    
    邻接多重表存储无向图的方式,可看作是邻接表和十字链表的结合。同邻接表和十字链表存储图的方法相同,都是独自为图中各顶点建立一张链表,存储各顶点的节点作为各链表的首元节点,同时为了便于管理将各个首元节点存储到一个数组中。各首元节点结构如图 1 所示:

     

    #define MAX_VERTEX_NUM 20                   //图中顶点的最大个数
    #define InfoType int                        //边含有的信息域的数据类型
    #define VertexType int                      //图顶点的数据类型
    typedef enum {unvisited,visited}VisitIf;    //边标志域
    typedef struct EBox{
        VisitIf mark;                           //标志域
        int ivex,jvex;                          //边两边顶点在数组中的位置下标
        struct EBox * ilink,*jlink;             //分别指向与ivex、jvex相关的下一个边
        InfoType *info;                         //边包含的其它的信息域的指针
    }EBox;
    typedef struct VexBox{
        VertexType data;                        //顶点数据域
        EBox * firstedge;                       //顶点相关的第一条边的指针域
    }VexBox;
    typedef struct {
        VexBox adjmulist[MAX_VERTEX_NUM];//存储图中顶点的数组
        int vexnum,degenum;//记录途中顶点个数和边个数的变量
    }AMLGraph;
  • 相关阅读:
    Vuex 在state中存取数据 modules分模块 (2018/11/28)
    计数器(2018/11/29)
    03$router和$route的区别 (2018/11/28)
    02导航守卫 (2018/11/28)
    01模拟用户的登录 (2018/11/27)
    路由传参(2018/11/26)
    CSS制作红桃心
    css制作三角形
    css内容超出显示省略号
    css制作旋转风车(transform 篇)
  • 原文地址:https://www.cnblogs.com/tszr/p/12901444.html
Copyright © 2011-2022 走看看