什么是图:
图的一些概念:
顶点:图中的元素
边: 图中的一个顶点可以与任意其他顶点建立连接关系,这种建立的关系就是边
度: 与顶点相连接的边的条数(无向图概念)
无向图: 边无方向的图
有向图: 边有方向的图
稀疏图(Sparse Matrix) : 顶点很多,但每个顶点的边并不多
带权图(weighted graph) 。在带权图中,每条边都有一个权重 (weight)
有向图的一些概念:
入度(In-degree) : 表示有多少条边指向这个顶点
出度(Out-degre) : 表示有多少条边是以这个顶点为起点推向其他顶点
图的存储:
邻接矩阵(Adjacency Matrix):
邻接矩阵的底层依赖一个二维数组。对于无向图来说,如果顶点i与顶点j之间有边,我们就将 Alij]和AJ[i标记为1;对于有向图来说,如果顶点i到顶点j之间,有一条箭头从顶点i指向顶点j的边,那我们就将Ai0j]标记为1。同理,如果有一条箭头从顶点j指向顶点i的边,我们就将Alji]标记为1。对于带权图,数组中就存储相应的权重。
优点: 简单直观,缺点: 浪费存储空间
邻接表存储法: