数据结构学习—图

1、什么是图?

是右顶点的有穷非空集合和顶点之间的集合组成 ,通常表示为:G(V,E),其中G表示一个图,V是图G的顶点的集合,E是图G中边的集合。我们只要记得,在图形结构中,结点之间的关系可以是任意的,因此图是多对多的关系。

2、图的各种定义

​ 无向边:若顶点Vi到Vj之间的边没有方向,则称这条边为无向边,用无序偶对(Vi,Vj)来表示。如果图中任意两个顶点之间的边都是无向边,则称该图为无向图。对于无向图G1来说,G1=(V1,{E1}),其中顶点集合V1={A,B,C,D};边集合E1={ (A,B),(B,C),(C,D),(D,A),(A,C)}。在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图

​ 有向边:若从顶点Vi到Vj的边有方向,则称这条边为有向边,也称。在有向图中,如果任意两个顶点之间都存在互为相反的两条弧,则称该图为有向完全图。 对于有向图G2来说,G2=(V2,{E2}),其中顶点集合V2={A,B,C,D};弧集合E2={,,,}。

​ 权:有些图的边或弧具有与它相关的数字,这种与图的边或弧相关的数叫。这些权可以表示从一个顶点到另一个顶点的距离或耗费。这种带权的图通常称为网。

​ 子图:假设有两个图G=(V,{E})和G‘=(V',{E'}),如果 V⊆V' 且 E‘⊆E,则称G’为G的子图

​ 度:顶点V的是和V相关联的边的数目。

​ 路径的长度:指路径上的边或弧的数目。

​ 环:第一个顶点到最后一个顶点相同的路径称为回路。除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路,称为简单回路或简单环。左图因为第一个顶点和最后一个顶点都是B,且C,D,A没有重复出现,因此是一个简单环。而右侧的环,由于顶点C的重复,它就不是简单环了。

3、连通图相关

1、什么是连通图?

​ 在无向图G中,如果从顶点V到顶点V‘有路径,则称V和V’是连通的。如果对于图中任意两个顶点vi、vj∈E,vi和vj都是连通的,则称G是连通图。如图所示左侧A与E或F无路径,因此不是连通图,右侧顶点都是相互连通的,是连通图。

2、连通分量

​ 无向图中的极大连通子图称为连通分量,注意连通分量的概念:

​ 1、要是子图。

​ 2、子图要是连通的。

​ 3、连通子图含极大顶点数。

​ 4、具有极大顶点数的连通子图包含依附于这些顶点的所有边。

​ 在有向图G中,如果对于每一对vi、vj∈V,vi≠vj,从vi到vj和从vj到vi都存在路径,则称G是强连通图

4、图的遍历

1、什么是图的遍历?

​ 从图中某一顶点出发访问遍图中其余顶点,且使每一个顶点仅被访问一次,这一过程就叫做图的遍历

2、深度优先遍历

深度优先遍历,也称为深度优先搜索,简称DFS。首先访问出发点v,并将其标记为已访问过;然后依次从v出发搜索v的每个邻接点w。若w未曾访问过,则以w为新的出发点继续进行深度优先遍历,直至图中所有和源点v有路径相通的顶点(亦称为从源点可达的顶点)均已被访问为止。我自己的理解可以看作一个顺时针的前序遍历

3、广度优先遍历

广度优先遍历,又称为广度优先搜索,简称BFS。广度优先遍历类似于树的层序遍历。

5、思考题

1、有时间可以代码实现一下图的遍历。

2、有空研究下找连通网的最小生成树的两种算法,普里姆和克鲁斯卡尔算法。

你可能感兴趣的:(数据结构学习—图)