收藏 分享(赏)

d森林问题.doc

上传人:weiwoduzun 文档编号:5739286 上传时间:2019-03-15 格式:DOC 页数:3 大小:38.50KB
下载 相关 举报
d森林问题.doc_第1页
第1页 / 共3页
d森林问题.doc_第2页
第2页 / 共3页
d森林问题.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、算法设计与分析课程设计题目: d 森林问题 姓名: 班级: 学号: 日期: 一、算法问题描述设 T 是一棵带权树,树的每一条边带一个正权。又设 S 是 T 的顶点集,T/S 是从树 T 中将 S 中顶点删去后得到的森林。如果 T/S 中所有树的从根到叶的路长都不超过 d ,则称T/S 是一个 d 森林。(1)设计一个算法求 T 的最小顶点集 S,使 T/S 是 d 森林。(提示:从叶向根移动)(2)分析算法的正确性和计算复杂性。(3)设 T 中有 n 个顶点,则算法的计算时间复杂性应为 O(n)。二、算法问题形式化表示三、期望输入与输出输入: 第一行有 1 个正整数 n,表示给定的带权树有 n

2、 个顶点,编号为1,2,n。编号为 1 的顶点是树根。接下来的 n 行中,第 i+1 行描述与 i 个顶点相关联的边的信息。每行的第一个正整数 k 表示与该顶点相关联的边数。其后 2k 个数中,每 2 个数表示 1 条边。第一个数是与该顶点相关联的另一个顶点的编号,第二个数是边权值。当 k=0 时表示相应的结点是叶结点。文件的最后一行是正整数d,表示森林中所有树的从根到叶的路长都不超过 d 。输出: 将编程计算出的最小分离集 S 的顶点数输出,如果无法得到所要求的 d 森林则输出“No Solution! ”。 四、算法分析与步骤描述1.用父亲数组 parent 表示树;leaf 存储叶结点编

3、号,readin 读入初始数据public static void readin()ReadStream keyBoard = new ReadStream();for(int i=1;ip)total+;cutpar=1;par = parentpar;else if(cutpar1 if(-degpar=0)leaf+leaf0=par;return total;五、问题实例及算法运算步骤1.用父亲数组 parent 表示树; leaf 存储叶结点编号,readin 读入初始数据中位数 2.从叶子结点向根结点移动,从根结点的路长超过 d 时,将该子树分离六、算法运行截图七、算法复杂度分析算法的时间复杂度为:O(n)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报