我的中国大学MOOC-陈越、何钦铭-数据结构-2018秋代码仓:https://github.com/617076674/MOOC-DataStructure-2018-Autumn
题目描述:
知识点:最小生成树
思路一:prim算法
prim算法的具体实现:
prim算法需要实现两个关键的概念,即集合S的实现、顶点Vi(1 <= i <= N)与集合S的最短距离。
(1)集合S的实现方法和Dijkstra中相同,即使用一个bool型数组visited[]表示顶点是否已被访问。其中visited[i] == true表示顶点Vi已被访问,visited[i] == false表示顶点Vi未被访问。
(2)令int型数组d[]来存放顶点Vi(1 <= i <= N)与集合S的最短距离。初始时除了起点s的d[s]赋为0,其余顶点都赋为一个很大的数来表示INF,即不可达。
时间复杂度是O(N ^ 2)。空间复杂度是O(N + M)。
C++代码:
#include<iostream>
#include<vector>
using namespace st