首页 > 代码库 > 数据结构-图的概念

数据结构-图的概念

根据我做过的一些错题。我想要简要总结一下一些比较容易忽略的图的概念。

1完全有向图和完全无向图。

一个有向图,有n个结点,则最多有n(n-1)条边。这种有n(n-1)条边的有向图是完全有向图。

一个无向图有n个节点,则最多有n(n-1)/2条边。这种n(n-1)/2条边的无向图是完全无向图。

 

 

2连通,连通图,连通分量。

无向图中,vi到vj有路径,则说vi到vj连通。

无向图的任意两个节点都连通,说这是连通图。

连通分量,在理解它之前,先要理解什么事极大连通子图。 A B是连通子图  A C也是连通子图

A B C也是连通子图。但是A B, A  C,节点数分别是2,2少于A B C(扩充进C)连通子图的3。所以A B C是极大连通子图。

D E也是连通子图。并且没办法再扩充了。它也是极大连通子图。连通分量就是极大连通子图

所以连通分量是A B C。D E。

技术分享

PS:一个N节点图至少一个连通分量。至多N个连通分量。

 

1 有环无环,深度优先搜索和拓扑排序关系。

这个问题比较复杂,第一是要知道回路。

回路 就是出发点与终点都是同一个点的路径 比如A-B-C-A。有回路就是有环的意思。

第二是要知道深度优先搜索 不要用递归实现,当数据一多就炸了。要用栈来实现,那么如何用栈实现呢?

http://blog.csdn.net/ivan_zgj/article/details/51541447这里有说。

然后用栈实现的深度优先搜索 逆序就是 拓扑排序。

 

数据结构-图的概念