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

生成哈夫曼树(100%用例)C卷(JavaPythonC++Node.jsC语言)

给定长度为n的无序的数字数组,每个数字代表二叉树的叶子节点的权值,数字数组的值均大于等于1。请完成一个函数,根据输入的数字数组,生成哈夫曼树,并将哈夫曼树按照中序遍历输出。
为了保证输出的二又树中序遍历结果统一,增加以下限制:二叉树节点中,左节点权值小于等于右节点权值,根节点权值为左右节点权值之和。当左右节点权值相同时,左子树高度高度小于等于右子树。
注意:所有用例保证有效,并能生成哈夫曼树。
提醒:哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。
例如:
由叶子节点5 15 40 30 10生成的最优二叉树如下图所示,该树的最短带权路径长度为40*1+30*2+15*3+5*4+10*4=205。

输入描述

第一行输入为数组长度,记为N,1<=N<=1000,第二行输入无序数值数组,以空格分割,数值均大于等于1,小于100000

输出描述

输出一个哈夫曼树的中序遍历的数组,数值间以空格分割

示例1 输入输出示例仅供调试,后台判题数据一般不包含示例

输入

5
5 15 40 30 10

输出

40 100 30 60 15 30 5 15 10

说明

根据输入,生成哈夫曼树,按照中序遍历返回。所有节点中,左节点权值小于等于右节点权值,根节点权值为左右节点权值之和。当左右节点权值相同时,左子树高度高度小于等于右子树。
http://www.lryc.cn/news/317106.html

相关文章:

  • el-form-item内的el-select如何自适应宽度
  • 什么洗地机值得推荐?旗舰洗地机希亦、追觅、西屋、海尔实际表现如何?
  • 掘根宝典之C++隐式类型转化(整型提升,算术转换)
  • group by order by having where union
  • 微信私信短剧机器人源码
  • java使用ws.schild.jave将视频转成mp4
  • python map函数
  • 基于SSM的党务政务服务热线平台(有报告)。Javaee项目。ssm项目。
  • Unity3D 动态生成场景管理节点详解
  • js--构造函数
  • Tomcat目录结构
  • 读西游记第一回:西游记世界格局
  • 【Unity知识点详解】Button点击事件拓展,单击、双击、长按实现
  • 了解财富的本质才能知道自己几斤几两
  • 机器学习模型—K最近邻(KNN)
  • BUUCTF-----[CISCN 2019 初赛]Love Math
  • 【前端】处理一次性十万条数据渲染方案(不考虑后端分页)
  • WPS 云文档保存在本地的地址如何从c盘更改为其他盘?
  • 每日leetcode--接雨水
  • redis 性能优化一
  • 柔性数组(变长数组)介绍
  • AMS、PMS和WMS学习链接
  • typedef 在枚举类型enum的使用方式
  • DDD领域模型驱动
  • 基于pytest的证券清算系统功能测试工具开发
  • 土地利用数据分类过程教学/土地利用分类/遥感解译/土地利用获取来源介绍/地理数据获取
  • 图【数据结构】
  • 整块代码自动生成、智能括号匹配……CodeGeeX编程提效,功能再升级!
  • java实现计算ROUGE-L指标(一)
  • LLM之RAG实战(二十九)| 探索RAG PDF解析