图的一些基础概念
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),适合于求边稀疏的最小生成树)。
(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),适合于求边稀疏的最小生成树)。
相关文章推荐
- 一些计算机硬件的基础概念
- c++基础:C++的一些基本概念
- Apache Pig的一些基础概念及用法总结(转)
- (转载)构架师成长路上的一些基础且重要的概念
- hadoop一些概念基础
- 面向对象的设计与实现的一些基础但重要的概念
- Apache Pig的一些基础概念及用法总结
- 关于一些基础概念的复习和总结
- 数据结构的一些基础概念
- jquery 之 搞清楚一些基础概念 DOM对象和JQuery对象的区别
- SQL Server基础概念--杂七杂八的一些小地方
- C++中的一些基本概念,很基础,但很重要!
- 一些基础概念的总结。。。。
- 一些I2S的基础概念
- Web开发基础--一些基本概念
- C#中一些很基础但有经常导致错误的一些概念
- MapXtreme的一些基础概念
- IPV4一些基础概念的总结
- Apache Pig的一些基础概念及用法总结3(转)
- Java中的一些基础概念