下载此文档

最小生成树.docx


文档分类:中学教育 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
实验内容或题目
用Prim算法求最小生成树。
输入网的二维矩阵,输出最小生成树。
实验目的与要求
复习图的存储方法和图的遍历方法。
进一步掌握图的非线性特点、递归特点和动态特征。
利用C或C++语言完成算法和程序设计。
上级调试通过实验程序。
输入数据,并求最小生成树。
给出具体的算法分析,包括时间复杂度和空间复杂度。
撰写实验报告。
实验步骤与源程序
⑴实验步骤:
从具体问题抽象出适当的数学模型
设计求解数学模型的算法
编制、运行并调试程序,直到解决实际问题。
⑵源代码:
#define MAX 30
#define MAXDATA 100
#include <>
#include <>
typedef struct
{
char vexs[MAX];
int edges[MAX][MAX];
int n,e;
}MGraph;
void CreateMGraph(MGraph *G)
{
int i,j,k,h;
char ch1,ch2;
printf("\n\t\t请输入顶点数,边数并按【Enter】键(格式如:5,7): ");
scanf("%d,%d",&(G->n),&(G->e));
for(i=0;i<G->n;i++)
{ getchar();
printf("\n\t\t请输入第%d个顶点并按回车: ",i+1);
scanf("%c",&(G->vexs[i]));
}
for(i=0;i<G->n;i++)
for(j=0;j<G->n;j++)
G->edges[i][j]=MAXDATA;
for(k=0;k<G->e;k++)
{ getchar();
printf("\n\t\t请输入第%d条边的端点序号(格式为:i,j):",k+1);
scanf("%c,%c",&ch1,&ch2);
printf("\t\t请输入权值:");
for(i=0;ch1!=G->vexs[i];i++);
for(j=0;ch2!=G->vexs[j];j++);
{
scanf("%d",&h);
G->edges[i][j]=G->edges[j][i]=h;
}
}
printf("\n\t\t已建立起无向图G的邻矩阵存储(100代表无穷大数据)\n\t\t");
for(i=0;i<G->n;i++)
{
for(j=0;j<G->n;j++)
printf("%5d",G->edges[i][j]);
printf("\n\t\t");
}
}
void prim(int g[100][100],int k,int n)
{
int i,j,min,p;
struct
{
int adjvex;
int lowcost;
}closedge[MAX];
for(i=1;i<=n;i++)
if(i!=k)
{
closedge[i].adjvex=k;
closedge[i].lowcost=g[1][i];
}
closedge

最小生成树 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小27 KB
  • 时间2018-03-14
最近更新