图(Graph)的定义,什么叫图?
在前边讲解的线性表中,每个元素之间只有一个直接前驱和一个直接后继,在树形结构中,数据元素之间是层次关系,并且每一层上的数据元素可能和下一层中多个元素相关,但只能和上一层中的一个元素相关。
但这仅仅都只是一对一,一对多的简单模型,如果要研究如人与人之间关系就非常复杂了。
图的定义
图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G 表示一个图,V是图G中顶点的集合,E是图G中边的集合。
对于图的定义,我们需要明确几个注意的地方:
- 线性表中我们把数据元素叫做元素,树中叫节点,在图中数据元素我们称之为顶点(Vertex)。
- 线性表可以没有数据元素,称为空表,树中可以没有节点,叫做空树,而图要求顶点有穷且非空。
- 线性表中,相邻的数据元素之间具有线性关系,树结构中,相邻两层的节点具有层次关系,而图结构中,任意两个顶点之间都可能有关系,顶点之间的逻辑关系用边来表示,边集可以是空的。
图的各种奇葩定义
无向边
若顶点Vi到Vj之间的边没有方向,则称这条边为无向边(Edge),用无序偶(Vi,Vj)来表示。
上图 G1 是一个无向图,G1={V1,E1},其中V1={A,B,C,D} E1={(A,B),(B,C),(C,D),(D,A),(A,C)}
有向边
若从顶点Vi到Vj的边有方向,则称这条边为有向边,也称为弧(Arc),用有序偶<vi,vj>来表示,Vi称为弧头,Vj称为弧尾。</vi,vj>
上图G2是以一个有向图,G2={V2,E2},其中V2={A,B,C,D},E2={<b,a>,<b,c>,<c,a>,<a,d>}</a,d></c,a></b,c></b,a>
简单图
在图结构中,若不存在顶点到其自身的边,且同一条边不重复出现,则称这样的图为简单图。
无向完全图
在无向完全图,如果任意两个顶点之间都存在边,则称改图为无向完全图。含有n个顶点的无向完全图有n*(n-1)/2条边。
有向完全图
在有向图中,如果任意两个顶点之间都存在方向为相反的两条弧,则称该图为有向完全图。含有n个顶点的有向完全图有n*(n-1)条弧。
稀疏图和稠密图
这里的稀疏图和稠密图是模糊概念,都是相对而言的,通常认为边或弧度小于 n*logn(n是顶点的个数)的图称为稀疏图,反之称为稠密图。
有些图的边或弧带有与他相关的数字,这种与图的边或弧相关的数叫做权(weight),带权的图通常称为网(NetWork)。
子图
假设有两个图G1=(V1,E1)和G2=(V2,E2),如果V2属于V1,E2属于E1,则称G2为G1的子图(Subgraph)。
图的顶点与边之间的关系
对于无向图 G=(V,E),如果边 (V1,V2) 属于E,则称顶点V1和V2互为邻接点(Adjacent),即V1和V2相邻接。边(V1,V2)依附(incident)于顶点V1和V2,或者说边(V1,V2)与顶点V1和V2相关联。
顶点V的度 (Degree) 是和V相关联的边的数目,记为TD(V),如下图,顶点A与顶点B互为邻接点,边(A,B)依附于顶点A与B上,顶点A的度为3。
对于有向图G=(V,E),如果有<v1,v2>属于E,则称顶点V1邻接到顶点V2,顶点V2邻接自顶点V1。</v1,v2>
以顶点V为头的弧的数目称为V的入度(InDegree),记为ID(V),以V为尾的弧的数目称为V的出度(OutDegree),记为OD(V),因此顶点V的度TD(V) = ID(V)+OD(V)。
如上图顶点A的入度为2,出度为1,所以顶点A的度为3。
无向图G=(V,E)中从顶点V1到顶点V2的路径(Path)。下图用红线列举了从顶点B到顶点D的四种不同路径:
如果G是有向图,则路径也是有向的。
下图用红线列举顶点B到顶点D的两种路径,二顶点A到顶点B就不存在路径啦:
路径的长度是路径上的边或弧的数目。
第一个顶点到最后一个顶点相同的路径称为回路或环(Cycle)。
序列中顶点不重复出现的路径称为简单路径,除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路,称为简单回路或简单环。
下图左侧是简单环,右侧不是简单环:
在无向图G中,如果从顶点V1到顶点V2有路径,则称为V1和V2是连通的,如果对于途中任意两个顶端Vi和Vj都是连通的,则称G是连通图
无向图中的极大连通子图称为连通分量。
在有向图G中,如果对于每一对 Vi 到 Vj 都存在路径,则称 G 是强连通图。
有向图中的极大强连通子图称为有向图的强连通分量。
所谓的一个连通图的生成树是一个极小的连通子图,它含有图中全部的n个顶点,但只有足以构成一棵树的n-1条边。
如果有一个有向图恰有一个顶点入度为0,其余顶点的入度均为1,则是一棵有向树。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 高级宏定义
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论