实验五 最小生成树
一、需求分析
1、本程序の目の是要建设一个最经济の网,,输出相应の最小生成树。在这里都用整型数来代替。
2、测试数据
见下程序。
二、概要设计
主程序:
int main()
{
初始化;
while (条件)
{
接受命令;
处理命令;
}
return 0;
}
三、详细设计
#include<iostream>//头文件
using namespace std;
#define MAX_VERTEX_NUM 20//最大结点数
#define MAX 200
typedef struct Close//结构体
{
char adjvex;
int lowcost;
}Close,close[MAX_VERTEX_NUM];
typedef struct ArcNode
{
int adjvex;
ArcNode *nextarc;
int info;
}ArcNode;
typedef struct VNode
{
char data;
ArcNode *firstarc;
}VNode,AdjList[MAX_VERTEX_NUM];
typedef struct
{
AdjList verties;
int vexnum,arcnum;
}ALGraph;
ALGraph G;//对象G
int LocateVek(ALGraph ,char );//返回结点位置
int minimum(close);//返回最小数
void MinSpanTree_PRIM(ALGraph,char);//最小生成树
void Create(ALGraph &);//创建邻接表
int main()
{
char a;int i=1;
Create(G);
/*for(int i=1;i<=;i++)
{
for(s=[i].firstarc;s!=NULL;s=s->nextarc)
cout<<[i].data<<"---"<<[s->adjvex].data<<"===="<<s->info<<endl;
}*/
while(i)
{
cout<<"输入起点 : ";
cin>>a;
MinSpanTree_PRIM(G,a);
cout<<"如果结束输入'0',否则输入'1':";
cin>>i;
}
return 0;
}
int LocateVek(ALGraph G,char u)
{
int i;
for(i=1;i<=;i++)
if(u==[i].data)
return i;
return -1;
}
int minimum(close m)//返回最小数
{
int i=0,j,n=200;
for(i=1;i<=;i++)
if(m[i].lowcost<n&&m[i].lowcost!=0)
{
n=m[i
最小生成树-实验报告 来自淘豆网m.daumloan.com转载请标明出处.