下载此文档

最小生成树课程设计.doc


文档分类:IT计算机 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
中北大学
数据结构与算法课程设计
说明书
 
学院、系:
软件学院
专业:
软件工程
学生姓名:
xx
学号:
xxx
设计题目:
最小生成树问题

起迄日期:
2013年12月9日- 2013年12月20日
指导教师:
李波
 
 
 2013 年12月 20 日
需求分析
设计内容:给定一个地区的n个城市间的距离网,用prim算法或kruskal算法建立最小生成树,并计算得到的最小生成树的代价。
基本要求:
(1)城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价;
(2)表示城市间距离网的邻接矩阵(要求至少6个城市,10条边);
(3)最小生成树中包括的边及其权值,并显示得到的最小生成树的代价。
2本设计所采用的数据结构
本程序设计所采用的数据结构为图。
3 设计思想
普里姆算法
4 核心代码
int main() //主函数
{ mgraph g; vertextype u; int k;
createUDN(&g); /* 生成邻接矩阵结构的图*/
printf("\nThe graph is:\n");
print(g); /*输出邻接矩阵*/
printf("input the city you want to start:");
scanf("%s",u); /* 输入最小生成树的起点*/
k=locatedvex(g,u);
while(k==-1){
printf("the name of the city is wrong!\n");
printf("input the city you want to start again:");
scanf("%s",u);
k=locatedvex(g,u);
}
minispantree(g,u); /* 普里姆算法求最小生成树*/
}

4 代码
#include""
#include""
#define maxnum 20 /* 图的最大顶点数*/
#define INFINITY 1000 /* 定义一个权值的最大值*/
typedef char vertextype[20]; /*定义城市名称*/
typedef struct ell
{
int adj; /*弧的权值*/
int *info; /*弧上相关信息的指针*/
}ell;
typedef struct array
{
vertextype adjvex; /*顶点的邻接点*/
int lowcost; /* 某顶点与已构造好的部分生成树的顶点之间的最小权值*/
}array;
typedef struct{
vertextype vexs[maxnum]; /*顶点向量*/
ell arcs[maxnum][maxnum]; /*邻接矩阵*/
int vexnum,um; /*图的顶点个数和弧个数*/
array cl

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

非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人miao19720107
  • 文件大小42 KB
  • 时间2018-02-15
最近更新