一、图的存储

图的基本存储结构:

  • 邻接矩阵;
  • 邻接链表。

1-1、邻接矩阵

用矩阵来表示图中顶点之间的关系。

示例1:有向图的邻接矩阵

示例2:无向图的邻接矩阵 

无向图的邻接矩阵是对称的!!! 

 

借助邻接矩阵可以求得各个顶点的度:

1、无向图:

        顶点Vi的度:邻接矩阵中,第i行(第i列)中1的个数;

有n个1,就有n/2条边!!! 

图中有e条边,邻接矩阵中就有2e个1。

2、有向图:

         顶点Vi的出度:邻接矩阵中,第i行中1的个数;

         顶点Vi的入度:邻接矩阵中,第i列中1的个数;             

有几个1,就有几条边!!! 

图中有e条,邻接矩阵中就有e个1。

1-2、领接链表

为图的每一个顶点建立一个单链表

示例1,有向图:

出度:单链表的节点个数。

入度:逆邻接表

逆邻接表,示例:

表节点个数 = e(边数)

示例2:无向图

二、稠密图、稀疏图

有很少条边或弧(边的条数|E|远小于|V|²)的图称为稀疏图(sparse graph),反之边的条数|E|接近|V|²,称为稠密图

2-1、稠密图

当图中的边的个数很多的时候,对应的图是稠密图,适合用邻接矩阵存储。

示例:

此时,对于无向图来说,边的个数(完全图),最多!!! 

2-2、稀疏图 

当图中的边的个数很少的时候,对应的图是稀疏图,适合用邻接链表存储。

示例:

 

三、真题

真题1:

图中有e条边

  • 无向图:邻接矩阵中有2e个1;
  • 有向图:邻接矩阵中有e个1。

真题2:

邻接矩阵——稠密图(边数多)——完全图

邻接链表——稀疏图(边数少)

真题3:

真题4:

四、网

边带权值的图——网

示例:

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐