6-7 最小生成树(普里姆算法) (10 分)

本文介绍如何实现普里姆算法来找出无向图的最小生成树。提供了一个基于邻接矩阵的图数据结构,并展示了 Prim 函数的接口及其实现。在给定的测试案例中,算法从指定节点开始,逐步构建最小生成树,并按顺序输出边的连接关系。
摘要由CSDN通过智能技术生成

试实现普里姆最小生成树算法。

函数接口定义:
void Prim(AMGraph G, char u);
其中 G 是基于邻接矩阵存储表示的无向图,u表示起点

裁判测试程序样例:
#include
#define MVNum 10
#define MaxInt 32767
using namespace std;

struct edge{
char adjvex;
int lowcost;
}closedge[MVNum];

typedef struct{
char vexs[MVNum];
int arcs[MVNum][MVNum];
int vexnum,arcnum;
}AMGraph;
int LocateVex(AMGraph G , char v);//实现细节隐藏
int Min(AMGraph G);//实现细节隐藏
int CreateUDN(AMGraph &G);//实现细节隐藏

void Prim(AMGraph G, char u);

int main(){
AMGraph G;
CreateUDN(G);
char u;
cin >> u;
Prim(G , u);
return 0;
}

/* 请在这里填写答案 */
输入样例:
第1行输入结点数vexnum和边数arcnum。第2行输入vexnum个字符表示结点的值,接下来依次输入arcnum行,每行输入3个值,前两个字符表示结点,后一个数表示两个结点之间边的权值。最后一行输入一个字符表示最小生成树的起始结点。

7 9
0123456
0 1 28
0 5 10
1 2 16
1 6 14
2 3 12
3 6 18
3 4 22
4 5 25
4 6 24
0
输出样例:
按最小生成树的生成顺序输出每条边。

0->5
5->4
4->3
3->2
2->1
1->6
ww.png

void Prim( AMGraph G, char u )
{
   
    int distance[G.vexnum];
    int parent[G.vexnum];
    int index = LocateVex(G, u)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

P-chanY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值