- A+
领500g书库,关注公众号:程叫兽的宝藏 (长按可复制!)
热门下载区==>点此链接进入<<<
目录(点击切换)
本文节选自《计算之魂吴军》电子版:
/第5章//工具与算法一一图论及应用/了,在与节点3相邻的两个节点中,最左边的节点1其实已经访问过了,因此接下来应该访问节点7,而不是节点1。为了避免同一个节点访问两次,更重要的是,为了防止形成死循环,我们需要标记所有已经访问过的节点。在设计这个算法的数据结构时,可以为每个节点增加一个数据项,就是它的颜色,一开始它是白色的,在访问过后就改成黑色的。当我们遇到的一个节点没有可以再访问的相邻节点(或者说它所有的相邻节点都是黑色的)时,我们就需要回溯到上一个访问的节点,然后新开始,就如同在节点4时回溯到节点2一样。最后直到所有的节点都被访问过为止,整个深度优先遍历的过程就完成了。图的深度优先算法的伪代码参见本章的附录一。深度优先遍历的过程还带来了一个副产品,就是产生了图的生成树〈SpanningTree)。将图5.8所示的遍历过程中首次到达每一个节点的边和节点放到一起,就构成了一棵树,如图5.9所示,我
计算之魂 pdf
们称这棵树为该图的生成树,它包含了图中所有的节氮以及部分边。在很多应用中,我们只需要关注图的生成树,而不需要关注图中所有的边,因为前者已经可以让我们访问到图中所有的节点了。图5.9图的生成树图的遍历分为深度优先和广度优先两种,后者和树的广度优先类似,需要用一个队列Q存储在遍历过程中优先访问节点的顺序。比如在上面的那个例子中,一开始队列Q中只有一个节点,就是起始节点1,然后我们将与它相邻的节点2和节点3放入队列中,节点1在被访问结束后被移除,节点2成为队列中的第一个节点,然后它175/计算之魂//的相邻节点4和节点5被放入队列……'最后,图中的节点按照下面的次序被一一访问到:1.2,3,4,.5,6,7,8,9,10,11,12,13。类似地,我们也可以根据访问到各个节点的路径,绘制出一棵生成树,如图5.10所示。广度优先遍历算法的伪代码参见本章的附录二。图5.10由广度优先遍历算法产生的生成树到目
吴军计算机之魂书籍下载
前为止,我们所讲的图都是连通的,也就是说在图中任意选取两个节点,在实际应用中遇到的图未必都是连通的,无论是采用深度优先还是采用广度优先,都不可能一次遍历所有的节点,只能遍历图中连通的部分。为了完成对所有节点的遍历,需要在上述算法结束时,在节点的集合G中检查一下是否还有节点没遍历到。如果还有,就随机选取一个没有被访问到的节点,从那里开始重复上述过程,直到从其中的一个节点出发,经过若干条边可以到达另一个节点。但是,节点的就得到很多棵独立的生成树,我们把它们称为森林。合中所有的节点都被访问过为止。如果我们把这样的访问过程记录下来,有了上述算法,从理论上讲我们就可以完成对互联网的遍历,并构到网络朴虫了。但是,任何一个在工程上有意义的网络聆虫都不是简单地实现上述遍历算法,还有诸多细节之处需要考虑周全。下面我们就来谈几个无法回避的问题,对工程没有兴趣的读者可以跳过这一他,直接进入5.4节的内容。17RA
计算之魂pdf百度网盘资源
| 计算之魂在线阅读 | 吴军计算之魂发布会 |
| 计算之魂pdf免费下载 | 吴军计算之魂pdf百度网盘 |
| 计算之魂pdf下载 | 计算之魂epub下载百度网盘 |

《计算之魂吴军》下载
-

[PDF电子书下载]《计算之魂吴军》 -

[epub电子书下载]《计算之魂吴军》 -

[word电子书下载]《计算之魂吴军》 -

[txt电子书下载]《计算之魂吴军》
版权提示: 本站为导购型网站,对拥有版权的书籍及内容,本站已经加入内容屏蔽,仅提供书籍介绍,并未提供资源下载地址,如需要删除书籍介绍,请联系我们删除。
综上:计算之魂免费阅读值得推荐阅读。

