数据结构之图(一)——概论

图的定义

图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。


无向边:若顶点vi到vj之间的边没有方向,则称这条边为无向边(Edge),用无序偶对(vi,vj)来表示。

如果图中任意俩个顶点之间的边都是无向边,则称该图为无向图(Undirected graphs)。如图:


有向边:若从顶点vi到vj的边有方向,则称这条边为有向边,也称为弧(Arc)。用有序偶<vi,vj>来表示,vi称为弧尾(Tail),vj称为弧头(Head)。

如果图中任意俩个顶点之间的边都是有向边,则称该图为有向图(Directed graphs)。如图:


在图中,若不存在顶点到其自身的边,且同一条边不重复出现,则称这样的图为简单图。如下图就不属于简单图。


在无向图中,如果任意俩个顶点之间都存在边,则称该图为无向完全图。

含有n个顶点的无向完全图有n(n-1)/2条边。

在有向图中,如果任意俩个顶点之间都存在方向互为相反的俩条弧,则称该图为有向完全图。

含有n个顶点的有向完全图有n(n-1)条边。

有很少条边或弧的图称为稀疏图,反之称为稠密图。

与图的边或弧相关的数叫做权(Weight)。

带权的图通常称为网(Network)。

假设有俩个图G1=(V1,{E1})和G2=(V2,{E2}),如果V1包含于V2且E1包含于E2,则称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)。
边数其实就是各顶点度数和的一半。
对于有向图G=(V,{E}),如果弧<v1,v2>属于E,则称顶点v1邻接到顶点v2,顶点v2邻接自顶点v。弧<v1,v2>和顶点v1,v2相关联。以顶点v为头的弧的数目称为v的入度(InDegree),记为ID(v);以v为尾的弧的数目称为v的出度(OutDegree),记为OD(v);顶点v的度为TD(v)=ID(v)+OD(v)。
入度总数等于出度总数。
无向图G=(V,{E})中从顶点v1到顶点v2的路径(Path)是一个顶点序列。如图顶点B到顶点D四种不同的路径。

如果G是有向图,则路径也是有向的。如图有向图顶点B到D有俩种路径。

路径的长度是路径上的边或弧的数目。
第一个顶点到最后一个顶点相同的路径称为回路或环(Cycle)。序列中顶点不重复出现的路径称为简单路径。除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路,称为简单回路或简单环。

连通图相关术语

在无向图G中,如果从顶点v1到顶点v2有路径,则称v1和v2是连通的。如果对于图中任意俩个顶点vi,vj属于E,vi和vj都是连通的,则称G是连通图(Connected Graph)。
无向图中的极大连通子图称为连通分量。它强调:
1.要是子图;
2.子图要是连通的;
3.连通子图含有极大顶点数;
4.具有极大顶点数的连通子图包含依附于这些顶点的所有边
在有向图G中,如果对于每一对vi,vj属于V,vi!=vj,从vi到vj和从vj到vi都存在路径,则称G是强连通图。有向图中的极大强连通子图称做有向图的强联通分量。
一个连通图的生成树是一个极小的连通子图,它包含图中全部的n个顶点,但只有足以构成一棵树的n-1条边。
如果一个有向图恰有一个顶点的入度为0,其余顶点的入度均为1,则是一颗有向树。
一个有向图的生成森林由若干颗有向树组成,含有图中全部顶点,但只有足以构成若干棵不相交的有向树的弧。

图的抽象数据类型


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值