首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和。给定一棵二叉树T,采用二叉链表存储,结点结构为: 其中叶结点的weight域保存该结点的非负权值。设root为指向T的根结点的指针,请设计求T的WPL的算法,要求: 根据设计思想,采
二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和。给定一棵二叉树T,采用二叉链表存储,结点结构为: 其中叶结点的weight域保存该结点的非负权值。设root为指向T的根结点的指针,请设计求T的WPL的算法,要求: 根据设计思想,采
admin
2015-12-30
84
问题
二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和。给定一棵二叉树T,采用二叉链表存储,结点结构为:
其中叶结点的weight域保存该结点的非负权值。设root为指向T的根结点的指针,请设计求T的WPL的算法,要求:
根据设计思想,采用C或C++语言描述算法,关键之处给出注释。
选项
答案
算法的代码如下: ①基于先序遍历的算法: int WPL(BiTree root){ return wpl_PreOrder(root,0); } int wpl PreOrder(BiTree root,int deep){ static int wpl=0;//定义一个static变量存储wpl if(root->lchild==NuLL&&root->lchild==NULL)//若为叶结点,累积wpl wpl+=deep*root->weight, if(root->ichiid!;NuLL)//若左子树不空,对左子树递归遍历 wpl_PreOrder(root->ichild,deep+1), if(root->rchiidI=NULL)//若右子树不空,对右于树递归遍历 wpl_PreOrder(root->rchild,deep+1); return wpl; } ②基于层次遍历的算法: #define MaxSize 100//设置队列的最大容量 int wpl LevelOrder(BiTree root){ BiTree q[MaxSize];//声明队列,end1为头指针,end2为尾指针 int end1,end2,//队列最多容纳MaxSize-1个元素 end1=end2=0;//头指针指向队头元素,尾指针指向队尾的后一个元素 int wpl=deep=0;//初始化wpl和深度 BiTree lastNode;//lastNode用来记录当前层的最后一个结点 BiTree newlastNode;//newlastNode用来记录下一层的最后一个结点 lastNode=root;//lastNode初始化为根结点 newlastNode=NULL;//newlastNode初始化为空 q[end2++]=root;//根结点入队 while(end1!=end2)f//层次遍历,若队列不空则循环 BiTree t=q[end1++];//拿出队列中的头一个元素 if(t->ichild==NULL&&t->lchild==NULL){ wpl+=deep*t->weight; }//若为叶结点,统计wpl if(t->ichild!=NULL){//若非叶结点把左结点入队 q[end2++]=t->ichild; newlastNode=t->ichiid; }//并设下一层的最后一个结点为该结点的左结点 if(t->rchild!=NULL){//处理叶结点 q[end2++]=t->rchild; newlastNode=t->rchild; } if(t==lastNode){//若该结点为本层最后一个结点,更新lastNode lastNode=newlastNode; deep+=1;//层数加1 } } return wpl;//返回wpl }
解析
考查二叉树的带权路径长度,二叉树的带权路径长度为每个叶结点的深度与权值之积的总和,可以使用先序遍历或层次遍历解决问题。
转载请注明原文地址:https://www.kaotiyun.com/show/3BRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
《汉谟拉比法典》中规定:如果奴隶胆敢对主人说:“你不是我的主人。”他的耳朵就要被割掉。这部法典诞生于()。
中共七届三中全会以后进行的工商业合理调整,其核心内容是调整()。
1901—1939年间美国历届政府在国内经济活动中职能作用的演变。
1901年6月,发表《立宪法议》,首先提出君主立宪要求的是()。
第一国际成立前,各国无产阶级强烈要求加强国际团结的直接原因是()。
下列不是开始于战国时期的制度是()。
晚清时期清帝年号的正确排序是
假定有一条通带为100kHz的信道,每路信号的带宽为3.2kHz,各路信号间的防护带宽为0.8kHz。若采用频分多路复用,那么最多可以同时传输()路信号。
某计算机系统字长为32位,包含2个选择通道和1个字节多路通道,每个选择通道上连接了2台磁盘机和2台磁带机,字节多路通道上连接了2台行式打印机、2台读卡器、10台终端。假定各设备的传输率如下:磁盘机:800KB/s磁带机:200KB/s
设有一个由正整数组成的无序(后向)单链表,编写能够完成下列功能的算法:(1)找出最小值结点,且打印该数值。(2)若该数值为奇数,则将其与直接后继结点的数值交换。(3)若该数值为偶数,则将其直接后继结点删除。
随机试题
A.X线胸片见单个薄壁空洞B.X线胸片有偏心空洞,内壁凸凹不平C.X线胸片呈大片状阴影,呈肺叶或肺段分布D.X线胸片呈大片状阴影,内为单个空洞伴液平E.X线胸片上肺有小片状阴影伴空洞肺炎球菌肺炎
根据《循环经济促进法》的规定,下列说法不正确的是()
采用具名团体技术进行决策的优点主要有()。
增值税一般纳税人从小规模纳税人处购买货物,均不得抵扣其支付的进项税额。()
老年期的人格特征是()。
下列不属于社会福利的项目是()。
人民警察的辞退是指公安机关对已不具备人民警察条件,不适合在公安机关继续工作的人员,解除其与公安机关任用关系的一种人事行政管理措施,下列情形符合辞退条件的是()。
计算机病毒是(39)。特洛伊木马一般分为服务器端和客户端,如果攻击主机为 A,目标主机为B,则(40)。
Underthedeterioratingsocialcondition,anewstableorderisdemandedto______thesocialfoundationagainstitscollapse.
A、Cautious.B、Supportive.C、Opposed.D、Relieved.A本文主要讨论饮料可能具有的副作用,但并不完全反对喝饮料,因此,说话人对喝饮料持一种谨慎的态度。A正确。
最新回复
(
0
)