1.图 定义:G(V,E) G:Graph V:vertex 非空集合 E:edge 边的集合
顶点(非空) 顶点之间的关系:边
2.1各种图的定义
按照边的反向性
①无向图
无向边(Vi, Vj) 任意两个边之间无向
G1=(V1,{E1})
V1 = {A,B,C, D}
E1 = {(A,B), (B,C), (C,D),(D,A), (A,C)}
②有向图
有向边--弧(Arc) <Vi, Vj> 弧尾 弧头 任意两边之间有向
G2=(V2,{E2})
V2 = {A,B,C, D}
E2 = {<A,B>, <B,C>, <C,D>,<D,A>}
其它定义
简单图:条件①不存在顶点到自身的边 ②不存在重复的边
完全图:
无向完全图:任意两个顶点之间都存在边 n*(n+1)/2
有向完全图:任意连个顶点之间都存在方向相反的弧 n*(n+1)
稀疏图:边或弧相对较少
稠密图:边或弧相对较多
权:与图的边或弧相关的数
网:带权的图
子图:V1属于V E1属于E V1为V的子图
2.2 图顶点与边的关系
无向图:
临接点:(v,v1)属于E
顶点V的度:和v相关联的边的数目 TD(v)
有向图:
连接于
出度ID(v) 入度OD(v) TD=ID+VD
路径:从一个顶点到另一个顶点经过的有序顶点序列
简单路径:顶点不重复
路径长度:边或弧的数目
回路或环:第一个顶点到最后一个顶点相同的路径
简单回路或者简单环:不重复顶点(除第一个和最后一个)
2.3连通图
连通的:v到v1有路径
无向图:
连通图:任意两个顶点都是连通的
连通分量:极大的连通子图
有向图:
强连通图:任意两个顶点之间都存在路径(正向和反向)
强连通分量:极大强连通子图
生成树:极小的连通子图,全部n个顶点,n-1条边
有向树:恰好有一个顶点,入度为0,其余顶点入度为1
生成森林:若干有向数组成,含有全部顶点,不相交
3.图的存储结构
①临接矩阵
一维数组表示顶点 二维数组表示边或弧
②连接表
一维数组表示顶点 链表表示临界点(边表/出边表)
③十字链表
一维数组表示顶点 交叉链表表示边/弧
④临接多重表
一维数组表示顶点 多重链表表示边/弧
⑤边集数组
一维数组表示顶点 一维数组表示边
顶点(非空) 顶点之间的关系:边
2.1各种图的定义
按照边的反向性
①无向图
无向边(Vi, Vj) 任意两个边之间无向
G1=(V1,{E1})
V1 = {A,B,C, D}
E1 = {(A,B), (B,C), (C,D),(D,A), (A,C)}
②有向图
有向边--弧(Arc) <Vi, Vj> 弧尾 弧头 任意两边之间有向
G2=(V2,{E2})
V2 = {A,B,C, D}
E2 = {<A,B>, <B,C>, <C,D>,<D,A>}
其它定义
简单图:条件①不存在顶点到自身的边 ②不存在重复的边
完全图:
无向完全图:任意两个顶点之间都存在边 n*(n+1)/2
有向完全图:任意连个顶点之间都存在方向相反的弧 n*(n+1)
稀疏图:边或弧相对较少
稠密图:边或弧相对较多
权:与图的边或弧相关的数
网:带权的图
子图:V1属于V E1属于E V1为V的子图
2.2 图顶点与边的关系
无向图:
临接点:(v,v1)属于E
顶点V的度:和v相关联的边的数目 TD(v)
有向图:
连接于
出度ID(v) 入度OD(v) TD=ID+VD
路径:从一个顶点到另一个顶点经过的有序顶点序列
简单路径:顶点不重复
路径长度:边或弧的数目
回路或环:第一个顶点到最后一个顶点相同的路径
简单回路或者简单环:不重复顶点(除第一个和最后一个)
2.3连通图
连通的:v到v1有路径
无向图:
连通图:任意两个顶点都是连通的
连通分量:极大的连通子图
有向图:
强连通图:任意两个顶点之间都存在路径(正向和反向)
强连通分量:极大强连通子图
生成树:极小的连通子图,全部n个顶点,n-1条边
有向树:恰好有一个顶点,入度为0,其余顶点入度为1
生成森林:若干有向数组成,含有全部顶点,不相交
3.图的存储结构
①临接矩阵
一维数组表示顶点 二维数组表示边或弧
②连接表
一维数组表示顶点 链表表示临界点(边表/出边表)
③十字链表
一维数组表示顶点 交叉链表表示边/弧
④临接多重表
一维数组表示顶点 多重链表表示边/弧
⑤边集数组
一维数组表示顶点 一维数组表示边