算法过程:
提示:优先队列基于最小二叉堆实现,最小生成树集合基于双向链表实现,链表单元是一个结构体,包含两个元素,分别是节点的number和节点的weight,另外设置一个一维数组表示该相对应的节点是否被纳入最小生成树集合。
1.将一个图的顶点分为两部分,一部分是最小生成树中的结点(A集合),另一部分是未处理的结点(B集合)。
2.首先选择一个结点,将这个结点加入A中,然后,对集合A中的顶点遍历,找出A中顶点关联的所有边的权值,将这些权值依次入队,然后从最小优先队列中选取最小的那个(设为v),将此顶点从B中删除,加入集合A中。
3.递归重复步骤2,直到B集合中的结点为空,结束此过程。
4.A集合中的结点就是由Prime算法得到的最小生成树的结点&