跪求 普里姆算法和克鲁斯卡尔算法
来源:百度知道 编辑:UC知道 时间:2024/09/13 04:04:32
要用 C语言写,要可以运行的,界面比较友好久可以,没有其他要求。
100分不成敬意!!!!!!!
.以邻接矩表的方式确定一个图,完成:
⑴建立并显示出它的邻接链表;
⑵分别用普里姆算法和克鲁斯卡尔算法构造其最小生成树,随时显示其构造的过程;
⑶给出某一确定顶点到所有其它顶点的最短路径;
#include<stdio.h>
#include<malloc.h>
#define MAXVEX 100
#define MAX 1000
#include<string.h>
typedef struct ArcCell
{
int adj; // 用1表示相邻,0表示不相邻;
int w; // 该弧的权值
}arc[MAXVEX][MAXVEX]; // 弧的结构
typedef struct
{
char vexs[MAXVEX]; // 顶点信息
arc arcs; // 弧的信息
int n, e; // 顶点数,弧数
}MGraph; // 图的结构
void createMGraph(MGraph *G) //建无向网的邻接矩阵存储结构
{
int i,j,k,W= 0;
printf(" 请输入图中的顶点数和弧数:");
scanf("%d %d",&(G->n),&(G->e));
printf("\n 请输入各个结点的名称: ");
for(i=0; i<G->n; i++)
{
getchar();
scanf("%c",&(G->vexs[i]));
}