您的位置:首页 > 其它

图的一些基础概念

2017-05-18 10:46 92 查看
 用n表示图中顶点数目,e表示边或弧的数目:

(1)        对于无向图,e的取值范围是0~N(N-1)/2;有N(N-1)/2条边的无向图叫完全图。

(2)        对于有向图,e的取值范围0~N(N-1);相应的有N(N-1)条边的有向图叫有向完全图。

(3)        对于图中任意两点都是连通的,叫做连通图;连通分量指的是无向图中极大连通子图;

(4)        在有向图中,若对于每一对顶点都存在路径,称图为强连通图。有向图中的极大强连通子图称为有向图的强连通分量;

 

一颗有n个顶点的生成树有且仅有n-1条边;

如果一个图有n个顶点和小于n-1条边,则是非连通图;

如果一个图多余n-1条边,则一定有环;

有n-1条边的图不一定是生成树;

 

图的存储结构:

1)邻接矩阵(构造一个具有n个顶点和e条边的无向图的时间复杂度为O(n^2+e*n)),其中对邻接矩阵初始化耗费O(n^2)、

 

2)邻接表(在建立邻接表或逆邻接表时,若输入的顶点信息即为顶点编号,则建立邻接表的时间复杂度为O(n+e);否则需要通过查找才能找到顶点在图中的位置,时间复杂度为O(n.e))、



3)邻接多重表(与邻接表的区别在于同一条边在邻接表中用两个结点表示,而在邻接多重表中只有一个结点)、

4)十字链表(与建立邻接表相同的时间复杂度)。

 

遍历图的实质是对每个顶点查找器邻接点的过程。

用邻接矩阵作图的存储结构时,查找每个顶点的邻接点所需要的时间为O(n^2);

用邻接表作图的存储结构时,查找邻接点所需要的时间为O(e);当用邻接表作存储结构时,深度优先搜索遍历图的时间复杂度为O(n+e)。

 

一颗生成树的代价就是树上各边的代价之和。

构造最小生成树算法多利用了MST性质。主要算法有 Prim算法(时间复杂度为O(n^2),与网中边数无关,适用于求边稠密的最小生成树)和
Kruskal算法(时间复杂度为O(e log e),适合于求边稀疏的最小生成树)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: