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;
  • 相关阅读:
    第13周学习进度情况
    【Android进阶】获取Android软件的版本信息
    【Android进阶】Android程序与JavaScript之间的简单调用
    字符串长度
    约瑟夫问题
    输入n个数和输出调整后的n个数
    输入三个整数,按由小到大的顺序输出
    学校oj平台上不去
    输入10个整数
    输入三个字符串,按由小到大的顺序输出
  • 原文地址:https://www.cnblogs.com/tszr/p/12901444.html
Copyright © 2011-2022 走看看