欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    求最小生成树(Kruskal算法)实验报告(共6页).doc

    • 资源ID:14196934       资源大小:158.50KB        全文页数:6页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    求最小生成树(Kruskal算法)实验报告(共6页).doc

    精选优质文档-倾情为你奉上学 生 实 验 报 告 学 院: 软件与通信工程学院 课程名称: 离散数学(软件) 专业班级: 12软件2班 姓 名: 杨滨 学 号: 专心-专注-专业学生实验报告(2)学生姓名杨滨学号同组人实验项目求最小生成树(Kruskal算法)必修 选修演示性实验 验证性实验 操作性实验 综合性实验实验地点W101实验仪器台号指导教师赵晓平实验日期及节次2013.12.12(四) 89A节一、实验综述1、实验目的及要求(1)了解求最优化问题的贪心算法,了解贪心法的基本要素,学会如何使用贪心策略设计算法;(2)掌握Prim算法和Kruskal算法的思想及两者之间的区别;(3)编写程序,分别利用Prim算法和Kruskal算法实现,求出最小代价生成树,输出构成最小代价生成树的边集。实验要求:给出如右图的边权图,求最小生成树。认真完成实验题,能正确运行,提交实验报告并上传程序,实验报告要求写出操作步骤、结果、问题、解决方法、体会等。2、实验仪器、设备或软件 计算机、VC+6.0、office、相关的操作系统等。二、实验过程(实验步骤、记录、数据、分析)#include<stdio.h> #define VERTS 6 struct edge int from,to; /起顶点,终顶点 int find,val; /标记,顶点间边长 struct edge *next; ; typedef struct edge node; node *find_min_cost(node *); void min_tree(node *); int vVERTS+1=0; /记录顶点即下标,值即出现过的次数 void main() int data103=1,0,6,0,3,5,3,5,2,5,4,6,4,1,3,2,1,5,2,0,1,2,3,5,2,5,4,2,4,6; /表示有10条线,例如1,0,6表示1和0距离为6node *head,*ptr,*new_node; head=NULL; printf("Add graph:n"); for (int i=0; i<10; i+) for (int j=1; j<=VERTS; j+) if (datai0=j) new_node=new node; new_node->from=datai0; new_node->to=datai1; new_node->val=datai2; new_node->find=0; new_node->next=NULL; if (head=NULL) head=new_node; head->next=NULL; ptr=head; else ptr->next=new_node; ptr=ptr->next; for (ptr=head; ptr!=NULL; ptr=ptr->next) printf("Begin%dtEnd%dttPath%dn",ptr->from,ptr->to,ptr->val); printf("nAdd Min Tree:n"); min_tree(head); putchar('n'); void min_tree(node *head) /建立最小生成树 node *ptr,*tmptr; int result=0; /布尔值,是否做出输出结果 for (ptr=head; ptr!=NULL; ptr=ptr->next) /遍历十条边 tmptr=find_min_cost(head); /找出最小边顶点 vtmptr->from+; /当前起点已选自加1次 vtmptr->to+; /当前终点已选自加1次 if (vtmptr->from>1 && vtmptr->to>1) /*这个IF语句就是一个防止生成树中有回路;因为vtmptr->from与vtmptr->to都出现过一次,这棵树的叶子结点都为1,所以当两个结点同时为2时,就形成回路*/ vtmptr->from-; vtmptr->to-; result=1; else result=0; if (result=0) printf("Begin%dtEnd%dttPath%dn",tmptr->from,tmptr->to,tmptr->val); node *find_min_cost(node *head) /最小边查找 int min_val=100; node *ptr,*tmptr; for (ptr=head;ptr!=NULL;ptr=ptr->next) if (ptr->val<min_val && ptr->find=0) /当当前边最小时并当前顶点没有被选择过 min_val=ptr->val; tmptr=ptr; /整个循环遍历完毕找到最小连min_val tmptr->find=1; /并标记该顶的边已选择 return tmptr; 三、结论1、实验结果2、分析讨论在编写这个程序时,我们先要非常熟悉kruskal算法,kruskal总共选择n-1条边,所使用的贪婪准则是:从剩下的边中选择一条不会产生的具有最小耗费的边加入已选择的边的集合内。然后根据这个算法用c+实践出来,程序长而又复杂,需要多多联系算法,以后的时间中还得多多练习。四、指导教师评语及成绩:成绩: 指导教师签名: 批阅日期:

    注意事项

    本文(求最小生成树(Kruskal算法)实验报告(共6页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开