在线性表中,每个元素只有一个直接前驱和一个直接后继;在树形结构中,数据元素又是层次关系,每一层的数据元素可能和下一层中的多个元素相关,但只能和上一层的一个元素相关。以上两种都是一对一、一对多的简单模型,如要描述多对多的复杂关系该怎么办呢?答案是——图。
我之前在树的概述中介绍过:在图论中,我们是先介绍的图,然后得到图的一个特例——树,树是由图定义的,而在数据结构中,我们是先学习的树,再学习图。不过这都有没啥影响。
树的基本概念https://blog.csdn.net/weixin_54186646/article/details/123844255?spm=1001.2014.3001.5502
目录
1.图的定义
图G由集合V和E组成,记为G=(V,E)
- 图中的结点称为顶点,V(G)是顶点的非空有穷集,顶点表示数据元素
- 相关的顶点偶对称为边,E(G)是边的有穷集(可以为空集),边表示数据元素之间的逻辑关系,分为有向边(顶点的有序对)和无向边(顶点的无序对)
通常用表示顶点个数,表示边数
在现实生活中,点集代表事物或对象的全体,边集代表点之间的联系或相互作用,即图是描述事物之间联系或相互作用状态的。
下图中有5个顶点,7条边,其中5条无向边,2条有向边。
2.图的相关概念
简单图
在图结构中,若不存在顶点到其自身的边,且同⼀条边不重复出现,则称这样的图为简单图
无向图
V(G)是顶点的非空有限集;E(G)是 有向边(即弧)的有限集合,弧是顶点的有序对,记<v,w>,v为弧尾(Tail),w为弧头(Head)
有向图
V(G)是顶点的非空有限集;E(G) 是边的有限集合,边是顶点的无序对,记(v, w)或 (w, v),并且(v, w)=(w, v)
完全图
如果图中的每两个顶点之间,都存在⼀条边,我们就称这个图为完全图。
- 完全有向图:有n(n-1)条边
- 完全⽆向图:有n(n-1)/2条边
端点和邻接点
- 在⼀个无向图中,若存在⼀条边(i,j),则称顶点i和顶点j为该边的两个端点。并称它们互为邻接点。
- 在⼀个有向图中,若存在⼀条边,则称顶点i和顶点j为该边的两个端点。它们互为邻接点。 此时,顶点i为起点。顶点j为终点
顶点的度、入度和出度
- 在无向图中,顶点所具有的边的数⽬称为该顶点的度。
- 在有向图中,顶点v的度就分为入度和出度,以顶点v为终点的入边的数⽬。称为该顶点的入度。 以顶点v为起点的出边的数目,称为该顶点的出度。⼀个顶点的⼊度和出度的和称为该顶点的度。在⼀个具有e条边的图中:度之和为2e。
子图
设图G=(V,E) 和图 G'=(V',E'),且 、,则称 G' 为 G 的子图。
路径和路径长度
设无向图G=(V,E)中的一个顶点序列{ u=vi,0,vi,1, …, vi, m=w}中,若,1 ≤ j ≤ m,则称 从顶点u 到顶点w 之间存在一条路径;路径上边的数目称作路径长度
- 简单路径:序列中顶点不重复出现的路径
- 简单回路:序列中第一个顶点和最后一个顶点相同的路径
如:长度为3的路径{A,B, F,C}
回路(环)
如果⼀条路径上的开始点与结束点为同⼀个顶点,则称此路为回路或者为环。
- 开始点和结束点相同的简单路径被称为简单回路或者简单环。
- 如果经过图中各边⼀次且恰好⼀次的环路,称之为欧拉环路,也就是其长度恰好等于图中边的总数,{ C,A,B,A,D,C,D,B,C}就是⼀条欧拉环路。
- 如果是经过图中的各顶点⼀次且恰好⼀次的环路,称作哈密尔顿环路,其长度等于构成环路的边数。{C ,A,D,B,C}就是⼀条哈密尔顿环路。
连通、连通图和连通分量
- 连通图:若无向图G中任意两个顶点之间都有路径相通, 则称此图为连通图
- 连通分量:若无向图为非连通图,则图中各个极大连通子图称作此图的连通分量
强连通图和强连通分量
强连通图:有向图中若任意两个顶点之间都存在一条有向路径,则称此有向图为强连通图;否则,其各个极大强连通子图称作它的强连通分量。
稠密图和稀疏图
当⼀个图接近完全图的时候,称之为疏密图;相反,当⼀个图含有较少的边数,则称之为稀疏图。
⼀般对于这个边的个数,说法比较多,通常认为边小于(n是顶点的个数)的图称之为稀疏图,反之称为稠密图。
权和网
图中的每⼀条边都可以附有⼀个对应的数,这种与边相关的数称为权。权可以表示从⼀个顶点到另⼀个顶点的距离或者花费的代价。边上带有权的图称为带权图,也称之为网
连通图的生成树
所谓连通图的⽣成树是⼀个极小的连通子图,它含有图中全部的n个结点,但是只有构成树的n-1 条边。
本节概念和内容繁多,我们不用死记硬背,关键是理解,这些概念是我们深入研究图的基础嗷,所以也要多理解理解!