数据结构与算法基础(青岛大学-王卓)–第六章图
上图G1的顶点V集合={V1,V2,V3,V4};E集合={V1->V3,V1->V2,V3->V4,V4->V5}
上图G2的顶点V集合={V1,V2,V3,V4};E集合={E1,E2,E3,E4,E5,E6,E7}
弧:有向图中的边(为了区分有向图和无向图的边)
稀疏图(e表示边,n表示顶点的数目):
稠密图:
(e>=nlogn)
网:边/弧带权值
邻接:
(V1,V2)表示V1,V2互为邻接点
无向图V0的度为2(红色边的数量):
有向图V0的入度为1:
有向图V0的出度为2:
无向图的连通图:
下图连通图:V0可以去到任意顶点V1,V2,V3,V4,同理V1,V2,V3,V4也可以
下图非连通图:V0,V1,V2,V3无法去到V4,V5同理V4,V5无法去到V0~V3
有向图的连通图:
下图强连通图:V0可以去到任意顶点V1,V2,V3,同理V1,V2,V3也可以
下图非强连通图:V1无法去到V0,V2,V3
G1,G2为G的连通子图并且都为极大连通子图(不管是G2或G1的顶点只要加入另外一个子图就会不在连通),G1,G2也称为G的连通分量
下图是一个非强连通图(V1无法到达V0,V2,V3),将V1去掉看成一个子图,这时候V1和(V0,V2,V3)分别为G的强连通分量
极小连通子图:该子图是G的连通子图,在该子图中删除任何一条边子图不再连通
下图就是一个极小连通子图,删除任意一条边就不再连通
连通图G1的生成树:包含G1中所有顶点的极小连通子图
数组表示法(邻接矩阵)
邻接表
,邻接多重表
,十字链表
来表示邻接表(指针域指向出度方向接收顶点)
V1对应上图的V1->V3(数组下标为2),V1->V2(数组下标为1)
特点:
逆邻接表(指针域指向入度方向发出顶点)
V1对应上图的V4->V1(数组下标为3)
特点:
邻接多重表
上图V1指向V4和V2,(V1,V4)和(V1,V2)
最小生成树
最短路径