求二叉树的带权路径长度

news2024/10/7 16:26:05

二叉树的带权路径长度(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.coloradmin.cn/o/2194501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

思维+数论,CF 922C - Cave Painting

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 922C - Cave Painting 二、解题报告 1、思路分析 诈骗题 我们发现 n mo…

配置MySQL8.0允许远程连接

一:打开MySQL 指令控制台 二.设置Mysql远程登陆 输入密码:123456 第一步:登进MySQL 输入指令:use mysql 第二步:更新域属性,%表示允许任意IP地址访问: 输入指令:update user set…

微信小程序开发-调试及配置文件介绍

一,隐藏控制台系统日志 在小程序开发中,如果你想要隐藏控制台中的系统日志,可以通过以下步骤进行操作: 打开小程序的开发工具。在开发工具的控制台(Console)中,找到你想要隐藏的系统日志。右键点击该系统日志条目。在…

who命令:显示当前登录用户名

一、命令简介 ​who​ 命令是一个常用的 Linux 命令,用于显示当前登录到系统上的用户信息。 例如 who它会列出当前登录用户的: 用户名终端登录时间远程主机(如果是远程登录的话) user1 tty1 Oct 7 08:30 soulio …

深度学习:基于MindSpore实现ResNet50中药分拣

ResNet基本介绍 ResNet(Residual Network)是一种深度神经网络架构,由微软研究院的Kaiming He等人在2015年提出,并且在ILSVRC 2015竞赛中取得了很好的成绩。ResNet主要解决了随着网络深度增加而出现的退化问题,即当网络…

域名劫持怎么处理?如何判断dns是否被劫持

随着网络环境的日益复杂,网站安全问题也日益凸显。域名劫持怎么处理?域名劫持是网站运营中不容忽视的安全威胁,在遇到域名劫持的时候应该学会应急响应、加强安全防护措施以及持续的安全维护,我们可以有效降低其带来的风险。 域名劫…

AOP 能够取代依赖注入吗?

AOP(面向方面编程)和依赖注入(DI)都是面向对象编程中非常重要的设计概念,它们在软件开发中扮演着不同的角色,但常常被用于解决相似的问题,如解耦、提高代码的可维护性和灵活性等。那么&#xff…

双碳平台-企业EMS -能源管理系统-能源在线监测平台

一、介绍 基于SpringCloud的能管管理系统-能源管理平台源码-能源在线监测平台-双碳平台源码-SpringCloud全家桶-能管管理系统源码 二、软件架构 二、功能介绍 三、数字大屏展示 四、数据采集原理 五、软件截图

面试问我LLM中的RAG,秒过!!!

本篇文章涉及了 RAG 流程中的数据拆分、向量化、查询重写、查询路由等等,在做 RAG 的小伙伴一定知道这些技巧的重要性。推荐仔细阅读,建议收藏,多读几遍,好好实践。 本文是对检索增强生成(Retrieval Augmented Genera…

matlab碳交易机制下考虑需求响应的综合能源系统优化运行

目录 1 主要内容 架构模型: 需求响应模型: 目标函数: 对比算例设计: 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序复现文献《碳交易机制下考虑需求响应的综合能源系统优化运行》,解决碳交易机制下考虑…

大数据新视界 --大数据大厂之 Alluxio 数据缓存系统在大数据中的应用与配置

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

时间序列顶会一网打尽!时间序列基础模型的最新进展!

前言 最近时间序列基础模型领域,迎来了里程碑式的突破。 TimeGPT作为首个原生基础模型,于去年八月问世,一发布就震撼了预测领域。 众多其他基础模型也相继发布,包括但不限于: TimesFM MOIRAI Tiny Time Mixers&am…

Vue83 引入elementUI

笔记 安装插件 安装按需引入插件 代码 ### App.vue <template><div><button>原生的按钮</button><input type"text"><atguigu-row><atguigu-button>默认按钮</atguigu-button><atguigu-button type"pr…

Pikachu-Sql-Inject -基于boolian的盲注

基于boolean的盲注: 1、没有报错信息显示&#xff1b; 2、不管是正确的输入&#xff0c;还是错误的输入&#xff0c;都只显示两种情况&#xff0c;true or false&#xff1b; 3、在正确的输入下&#xff0c;输入and 1 1/and 1 2发现可以判断&#xff1b; 布尔盲注常用函数&…

MySQL连接查询:外连接

先看我的表结构 dept表 emp表 外连接分为 1.左外连接 2.右外连接 1.左外连接 基本语法 select 字段列表 FORM 表1 LEFT [OUTER] JOIN 表2 ON 条件;例子&#xff1a;查询emp表的所有数据&#xff0c;和对应部门的员工信息&#xff08;左外连接&#xff09; select e.*, d.n…

全网最详细大语言模型(LLM)入门学习路线图

Github项目上有一个大语言模型学习路线笔记&#xff0c;它全面涵盖了大语言模型的所需的基础知识学习&#xff0c;LLM前沿算法和架构&#xff0c;以及如何将大语言模型进行工程化实践。这份资料是初学者或有一定基础的开发/算法人员入门活深入大型语言模型学习的优秀参考。这份…

假期顺便测试了一下高德POI的准确度及对景区地图的一些感想

所使用的测试工具: GIS 移动端工具 1.山西大同乌龙峡 2.山西大同昊天寺 3.山西大同火山地质公园 4.山西大同忘忧农场 总的来说高德精度还是不错的&#xff0c;测试的几个位置都比较准确&#xff01;但景区内部的目标不是很全&#xff0c;内部小的位置完全没有标记&#xff01…

C语言 | Leetcode C语言题解之第461题汉明距离

题目&#xff1a; 题解&#xff1a; int hammingDistance(int x, int y) {int s x ^ y, ret 0;while (s) {s & s - 1;ret;}return ret; }

HDLBits中文版,标准参考答案 |2.5 More Verilog Features | 更多Verilog 要点

关注 望森FPGA 查看更多FPGA资讯 这是望森的第 7 期分享 作者 | 望森 来源 | 望森FPGA 目录 1 Conditional ternary operator | 条件三目运算符 2 Reduction operators | 归约运算器 3 Reduction: Even wider gates | 归约&#xff1a;更宽的门电路 4 Combinational fo…

时域交织ADC建模文档

时域交织ADC建模文档 Time-interleaved SAR ADC modeling 32-way 6-bit TI SAR ADC 发货内容 仅有19页PDF&#xff0c;内有MATLAB代码&#xff08;3页&#xff09; MATLAB建模&#xff1b;TI SAR ADC;