1.  方式一:邻接矩阵

            核心内容:利用二维数组实现图的存储

            结构分析:该图有3个顶点,分别为1、2、3,因此至少需要一个n行n列的二维数组,行坐标和列坐标都代表结点的编号,从1开始编号,分析以上有向图可以发现,有1->2,1->3,2->3三边,  以行坐标代表起点,纵坐标代表终点,两点之间如果有边标记为1,否则标记为0,如下表格所示

        注意:如果该图是无向图,那么 就有1->2,2->1,1->3,3->1,2->3,3->2六条边,因为对于无向图而言是双向可达的

 

2.  方式二:邻接表

        核心内容:利用数组+链表实现图的存储 

          结构分析:该图有4个顶点,分别为1、2、3、4,从1出发的边有1->2,1->3,1->4,从2出发的边有2->3,没有从3出发的边,从4出发的边有4->3,并且边与边之间有权重

        注意:有向图,链表只连接指出去的;无向图,凡是连接的都加入链表,例如1->2  2->1都需要加入链表,因为无向图是双向可达的 

 

 

3.  方式三:链式前向星

        核心内容:本质上是邻接表的数组表示(数组模拟链表)

        结构分析:该图有5个顶点,分别为1、2、3、4、5 从1出发的边有1->2,1->5,从2出发的边有2->3,从3出发的边有3->4,从4出发的边有4->5,没有从5出发的边,并且边与边之间有权重

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐