百度搜索 编程之战 天涯 编程之战 天涯在线书库 即可找到本书最新章节.

    那么,就开始编写Prim算法吧!

    首先,做异常情况判断。

    两种情况视为异常:

    1.地图为空(没有意义嘛)

    2.地图连通性无法保证

    这些情况,通通返回空地图。

    然后,从地图中选取一个点,作为起始顶点。

    随便哪个点都可以的!

    将该点标识为已访问,并将含有起始顶点的边添加到优先级队列。

    接下来,是算法的关键性部分。

    1.从优先级队列中取出权重最小的边。

    2.如果这条边,两端的点都被访问过,说明是失效的边,将其舍弃。

    3.这条边没有被舍弃,那就是有效的,加入最小生成树。

    4.以这条边,没有被访问过的端点,继续标识为已访问,并将含有该端点的边添加到优先级队列。

    5.又从1.开始,反复循环。

    这似乎是个从1到4阶段永不停歇的贪心计算过程。

    然而,万物有始必有终结。

    当图中所有的顶点,都被最小生成树得到(顶点数量相同)。

    或者,当优先级队列为空。

    这个算法就结束了它的使命。

    此时得到的,就是原来地图的最小生成树。

百度搜索 编程之战 天涯 编程之战 天涯在线书库 即可找到本书最新章节.

章节目录

编程之战所有内容均来自互联网,天涯在线书库只为原作者程序小猿的小说进行宣传。欢迎各位书友支持程序小猿并收藏编程之战最新章节