【特惠】26考研
红包
【考研】专业课HOT
26考研
【MBA】在职考研
【4月】高分训练营
【报录比】查询
计划
【真题】历年考题
资料
【申硕】同等学力
预备
【词汇】5500大纲
免费
【AI】智能择校
免费
【资料】考研大纲
精
扫码加入训练营
牢记核心词
学习得礼盒
【题目】
41.(13分)二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和。给定一棵二叉树T,采用二叉链表存储,结点结构为:,其中叶结点的weight域保存该结点的非负权值。设root为指向T的根结点的指针,请设计求T的WPL的算法。要求:
(1)给出算法的基本设计思想;
(2)使用C或C++语言,给出二叉树结点的数据类型定义;
(3)根据设计思想,采用C或C++语言描述算法,关键之处给出注释。
【答案参考】:
【答案一】
(1)算法的设计思想:
本问题可采用递归算法实现。根据定义:
二叉树的WPL值=树中全部叶结点的带权路径长度之和
=根结点左子树中全部叶结点的带权路径长度之和+根结点右子树中全部叶结点的带权路
径长度之和
叶结点的带权路径长度=该结点的weight域的值×该结点的深度
设根结点的深度为0,若某结点的深度为d时,则其孩子结点的深度为d+1。
(2)算法中使用的二叉树结点的数据类型定义如下:
typedef struct node
{
int weight:
struct node * left,* right;
} BTree;
(3)算法实现:
int WPL(BTree * root) //根据WPL的定义采用递归算法实现
{ return WPL1(root,0);
}
int WPLl (BTree * root,int d) //d为结点深度
{ if(root->left==NULL && root->right==NULL)
return(root->weight * d);
else
return(WPL1(root->left,d+1)+WPLl (root->right,d+1));
}
【答案二】
(1)算法的设计思想:
若借用非叶结点的weight域保存其孩子结点中weight域值的和,则树的WPL等于树中所有非叶结点weight域值之和。
采用后序遍历策略,在遍历二叉树T时递归计算每个非叶结点的weight域的值,则树T的WPL等于根结点左子树的WPL加上右子树的WPL,再加上根结点中weight域的值。
(2)算法中使用的二叉树结点的数据类型定义同【答案一】。
(3)算法实现:
int WPL(BTree*root) //基于递归的后序遍历算法实现
{ int w_l,w_r;
if(root->left==NULL && root->right==NULL)
return 0:
else
{ w_l=WPL(root->left); //计算左子树的WPL
w_r=WPL(root->right); //计算右子树的WPL
root->weight=root->left->weight + root->right->weight;//填写非叶结点的weight域
return(w_l+w_r + root->weight);//返回WPL值
}
}
本文关键字: 二叉树的带权路径长度(WPL)
添加班主任领资料
添加考研班主任
免费领取考研历年真题等复习干货资料
推荐阅读
2024年考研初试考试结束后,相信同学们都比较关心考后的真题以及答案了。新东方在线第一时间为大家整理了本次考试对应的真题以及答案解
2024年考研初试考试结束后,相信同学们都比较关心考后的真题以及答案了。新东方在线第一时间为大家整理了本次考试对应的真题以及答案解
2024年考研初试考试结束后,相信同学们都比较关心考后的真题以及答案了。新东方在线第一时间为大家整理了本次考试对应的真题以及答案解
2024年考研初试考试结束后,相信同学们都比较关心考后的真题以及答案了。新东方在线第一时间为大家整理了本次考试对应的真题以及答案解
2024年考研初试考试结束后,相信同学们都比较关心考后的真题以及答案了。新东方在线第一时间为大家整理了本次考试对应的真题以及答案解
资料下载
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
新东方在线考研资料合集
下载方式:微信扫码,获取网盘链接
目录:
1.2013-2023年近10年政数英真题及解析PDF版(新东方)
2.2013-2023年专业课考试历年真题及解析PDF版
3.24考研复习备考资料大合集:大纲+备考资料+词汇书+考前押题+自命题
资料介绍:
1.2013-2023年近10年政数英真题及解析PDF版(新东方)
、
2.2013-2023年专业课考试历年真题及解析PDF版
3.24考研复习备考资料大合集
3.24考研复习备考资料:考研大纲
3.24考研复习备考资料:政数英备考资料+自命题真题
------------------
考研备考过程中,尤其是专业课部分,参考往年的考试真题,对于我们的复习有更好的帮助。北京大学考研真题资料都有哪些?小编为大家进行了汇总。
北京大学考研真题资料-公共课
北京大学考研真题资料-专业课
以上就是关于“北京大学考研真题资料下载(历年汇总)”的整理,更多考研资料下载,请关注微信获取下载地址。
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
阅读排行榜
相关内容