下载此文档

普里姆算法生成最小生成树 课程设计.doc


文档分类:IT计算机 | 页数:约39页 举报非法文档有奖
1/39
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/39 下载此文档
文档列表 文档介绍
普里姆算法生成最小生成树_课程设计JINGCHU UNIVERSITY OF TECHNOLOGY
《数据结构(C语言描述)》
课程设计
学院计算机工程学院
班级 12级软件技术1班
学号 20**********、120
124、133、121
学生姓名周鑫、王彬彬、李松平
张圣玮、魏远迎
指导教师余云霞
2014年 1月3日
目录
1 课程设计介绍 1
课程设计内容 1
课程设计要求 1
2 课程设计原理 2
课设题目粗略分析 2
原理图介绍 3
功能模块图 3
流程图分析 3
3 数据结构分析 10
存储结构 10
算法描述 12
4 调试与分析 22
调试过程 22
程序执行过程 22
参考文献 28
附录 28
1 课程设计介绍
课程设计内容
编写算法能够建立带权图,并能够用Prim算法求该图的最小生成树。最小生成树能够选择图上的任意一点做根结点。最小生成树输出采用顶点集合和边的集合的形式。
课程设计要求
可以输入顶点、边数及各路径的权值;
通过建立无向图或有向图能过输出邻接矩阵或邻接表;
可以输出建立的最小生成树;
画出流程图,且函数有必要说明、注释;
课设完成后上交报告及核心代码。
2 课程设计原理
课设题目粗略分析
根据课设题目要求,拟将整体程序分为两大模块。以下是两个模块的大体分析:
创建网图并确定网图的存储形式,通过对题目要求的具体分析。发现该题的主要操作是路径的输出,因此采用邻接表和邻接矩阵(起点、终点和权值)两种存储结构,方便以后的编程。
。设置两个新的集合U和T,其中U用于存放带权图G的最小生成树的结点的集合,T用于存放带权图G的最小生成树边的权值的集合。其思想是:令集合U的初值为U{u0}(即假设构造最小生成树时从结点u0开始),集合T 的初值为T={}。从所有结点u属于U和结点v属于V但不属于U的带权边中选出具有最小权值的边(u,v),将结点v加入集合U中,将边(u,v)加入集合T中。如此不断重复,当U=V时,最小生成树便构造完毕。
原理图介绍
功能模块图
显示菜单进行选择
选择创建(有)无向图及存储方式
有向图邻接矩阵
无向图邻接矩阵
有向图邻接表
无向图邻接表
调用普里姆算法输出最小生成树
结束
开始
功能模块图
流程图分析
主函数
开始
显示菜单,选择输入1或2
选择1
选择2
调用createAgraph()函数
结束
选择1
调用CreateGraph()函数
选择2
调用CreateMGraph()函数
调用createALgraph()函数
调用Prim函数,输出最小生成树
主函数流程图
2. CreateMGraph()函数
开始
int i,j,k
for(i=0;i<G->n;i++)
scanf(“\n%c”,&(G->vexs[i]));
for(i=0;i<G->n;i++)
for(j=0;i<G->n;i++)
i=j
G->edges[i][j]=0;
Y
N
G->edges[i][j]=max;
for (k=0;k<G->e;k++)
scanf("\n%d,%d,%d",&i,&j,&weight);
G->edges[i][j]=weight;
OutPut(G);
prim(G->edges,G->n,G->vexs);
结束

CreateMGraph()函数流程图

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

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数39
  • 收藏数0 收藏
  • 顶次数0
  • 上传人qsrkmc24
  • 文件大小347 KB
  • 时间2018-08-11