• 谈一谈图都有哪些存储方式?


    谈一谈图都有哪些存储方式?

    1. 邻接矩阵

                                                                         对于无向图来说,是对称的

    2. 邻接表

             

              一个数组里面存储顶点所指向的下一个节点链表

          3.十字链表

       十字链表是二维的,链表的元素同时链接左右水平邻结点与上下垂直邻结点。

       这是十字链表节点元素的定义

    struct OLNod{
           int i ;   //该非零元的行下标; 
           int j ;   //该非零元 的列下标; 
           int value ;   //该非零元的数值;
           struct OLNod *right ,*down ;//该非零元所在的行表和列表的后继链域; 
     };

    struct CrossL{
          OLNod **rhead, **sead; 
             //十字链表的行头指针和列头指针; 定义为指向指针的指针;
         int row;     //稀疏矩阵的行数; 
         int col;     //稀疏矩阵的列数; 
         int num;     //稀疏矩阵的非零个数; 
      };

       4.邻接多重表

           邻接多重表适用于无向图存储。

           

    有两个链表组成,左边的是该顶点相关的信息如顶点名称

    右边的是表示边界点

    mark表示这条边是否被访问过

    ivex和jvex为该边依附的两个顶点在图中的位置,如(vi,vj)

    ilink指向下一条依附于顶点ivex的边  jlink指向下一条依附于顶点jvex的边

    info是改边的信息

  • 相关阅读:
    HDU 5023 A Corrupt Mayor's Performance Art(线段树区间更新)
    CSU 1120 病毒(DP)
    CSU 1116 Kingdoms(枚举最小生成树)
    一种map容器遍历的方法
    CSU 1113 Updating a Dictionary(map容器应用)
    Python模块-virtualenv-虚拟环境
    计算学习原理
    sklearn-特征工程之特征选择
    链家网深圳租房信息分析报告
    test
  • 原文地址:https://www.cnblogs.com/cwllife/p/15805019.html
Copyright © 2020-2023  润新知