图的定义
想学习图神经网络的内容,但是对数据结构完全不了解,所以学习一下图的定义。
相关术语
图的定义
- 图中的元素1、2、3等,称之为顶点;
- 顶点集合不能为空;
- 任意两顶点之间都有可能有关系,顶点与顶点之间的逻辑关系用“边”表示;
- 边集可以为空。
1 无向图
边若是没有方向的,就是“无向边”,则对应的图就是无向图
对上图来说,即为无向图,表示为G1=(V1,{E1}),其中V1表示顶点的集合V1={A,B,C,D},E1表示边的集合E1={(A,B),(B,C), (A,C) , (A,D), (C,D)},
PS:这些无序对没有先后之分,比如(A,B)也等价于(B,A)。
无向完全图
若一个无向图的任意两顶点之间都有边,则该图就是无向完全图。假设有n个顶点,则该无向完全图共有n*(n-1)/2条边。
上图就是无向完全图,共有4个顶点,4*3/2=6条边。
2 有向图
对比于无向图,当边是有方向的,对应的图就是有向图。有向边用有序对表示,顺序表示方向,有向边又称为弧,顺序可表示为弧尾指向弧头,表示箭头的方向。
对于上面有向图来说,G2=(V2,{E2}),其中顶点集合V2={A,B,C,D},有向边也就是弧集合E2={<A,D>,<B,A>,<B,C>,<C,A>}。
PS:无向边用()表示,有向边用<>表示。
有向完全图
在有向图中,任意两个顶点之间都存在方向互为相反的两条弧,则称该图为有向完全图,假设有n个顶点,则共有n*(n-1)条弧。
可以有以下结论,假设有n个顶点:
对于无向图,边的条数e的区间为0<=e<=n*(n-1)/2;
对于有向图,边的条数e的区间为0<=e<=n*(n-1);
网
有些图的边或弧有与他相关的数字,这种与图的边或弧相关的数字叫做权(Weight),带权的图称为网。
子图
假设G1=(V1,{E1}),G2=(V2,{E2}),其中,顶点集合V1属于V2,边集合E1属于E2,则G1是G2的子集。
图的顶点与边的关系
无向图
对于无向图G=(V,{E}),若边(v1,v2)属于边的集合E,则称v1与v2互为邻接点,边(v1,v2)与顶点v1、v2相关联,顶点v1的度是和v1相关联的边的数目,记为TD(v1)。则度与边的关系:
有向图
对于有向图G=(V,{E}),若弧(v1,v2)属于弧的集合E,弧(v1,v2)与顶点v1、v2相关联,但是与无向图不同的是,弧是有方向的,以顶点v1为头的弧的数目称为顶点v1的入度(InDegree),记为ID(v1),以顶点v1为尾的弧的数目称为顶点v1的出度(OutDegree),记为OD(v1),顶点v1的度TD(v1)=ID(v1)+OD(v1),有向图中度与边的关系如下: