当前位置: 首页 > news >正文

求二叉树的带权路径长度

二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和。给定一棵二叉树T,采用二叉链表存储。结点结构为:

其中叶结点的weight域保存该结点的非负权值。设root为指向T的根结点的指针,请设计求T的WPL的算法。

思想:使用先序遍历递归的方式实现。使用一个变量len,初始值为0,每向下遍历一层,len加1.如果当前结点是叶子结点的话,那么就计算(len-1)*weight,并加入到总权值中。

代码:

typedef struct BiTNode{ElemType data;struct BiTNode *left,*right;
}BiTNode, *BiTree;void TWPL(BiTree root,int len,int &wpl){if(root == NULL) return;//树空 len++;if(root->left==NULL && root->right==NULL){//叶结点 wpl += (len-1)*root->weight;}else{//递归处理左右子树 wpl(root->left,len,wpl);wpl(root->right,len,wpl);}
}
int WPL(BiTree root){int wpl=0;TWP(root,0,wpl);return wpl;
} 

http://www.lryc.cn/news/455226.html

相关文章:

  • Hive数仓操作(十五)
  • No.12 笔记 | 网络基础:ARP DNS TCP/IP与OSI模型
  • OpenHarmony(鸿蒙南向开发)——轻量系统STM32F407芯片移植案例
  • 简单易懂的springboot整合Camunda 7工作流入门教程
  • LabVIEW提高开发效率技巧----点阵图(XY Graph)
  • C++-匿名空间
  • jdk的安装和环境变量配置
  • 继承、Lambda、Objective-C和Swift
  • 设置服务器走本地代理
  • 刷题 -哈希
  • React响应式修改数组和对象
  • cerbot https证书免费自动续期
  • 嵌入式硬件设计
  • 2024.09.24 校招 实习 内推 面经
  • GIT安装及集成到IDEA中操作步骤
  • Java使用线程池创建线程
  • mysql UDF提权(实战案例)
  • 【瑞昱RTL8763E】刷屏
  • 【黑马点评】使用RabbitMQ实现消息队列——3.使用Jmeter压力测试,导入批量token,测试异步秒杀下单
  • 第 21 章 一条记录的多幅面孔——事务的隔离级别与 MVCC
  • javaScript操作dom的事件(3个案例+代码+效果图)
  • 国庆期间的问题,如何在老家访问杭州办公室的网络呢
  • 动态规划算法——三步问题
  • 【鸿蒙学习】深入解析鸿蒙应用与元服务:含义、区别、应用场景及创建方法
  • React学习01 jsx、组件与组件的三大属性
  • 项目——超级马里奥——Day(3)
  • 测试-BUG篇
  • vue2中 vue-count-to组件让数字从某个数字动态的显示到某个数字(后附vue3的用法)
  • AI模型部署初认识
  • 在线生成论文的网站有哪些?分享5款AI一键原创论文免费网站