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

2024年华为OD机试真题-生成哈夫曼树-Java-OD统一考试(C卷)

题目描述:

给定长度为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
输出࿱

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

相关文章:

  • 【实战】二、Jest难点进阶(二) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(六)
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • HAL/LL/STD STM32 U8g2库 +I2C SSD1306/sh1106 WouoUI磁贴案例
  • 手机如何改自己的ip地址
  • ajax函数库axios基本使用
  • 【nginx实践连载-4】彻底卸载Nginx(Ubuntu)
  • 究极小白如何自己搭建一个自动发卡网站-独角数卡
  • Java_方法(重载方法签名等详解)
  • VQ35 评论替换和去除(char_length()和replace函数的使用)
  • 【MySQL】学习多表查询和笛卡尔积
  • RabbitMQ实现延迟消息的方式-死信队列、延迟队列和惰性队列
  • 【运维测试】测试理论+工具总结笔记第1篇:测试理论的主要内容(已分享,附代码)
  • 【C语言】实现队列
  • 【友塔笔试面试复盘】八边形取反问题
  • GB 18585-2023 壁纸中有害物质限量
  • 全面的ASP.NET Core Blazor简介和快速入门
  • HGAME 2024 WEEK2 Crypto WP
  • Postman轻松签名,让SHA256withRSA保驾护航!
  • C#面:简述装箱和拆箱
  • 【Kubernetes in Action笔记】1.快速开始
  • 踩坑实录(Fourth Day)
  • 【python】网络爬虫与信息提取--requests库
  • 洛谷 P8627 [蓝桥杯 2015 省 A] 饮料换购
  • Academic Inquiry|投稿状态分享(ACS,Wiley,RSC,Elsevier,MDPI,Springer Nature出版社)
  • 1+X运维试题样卷C卷(初级)
  • Spring学习笔记(二)Spring的控制反转(设计原则)与依赖注入(设计模式)
  • MySQL 基础知识(四)之表操作
  • 计算机网络——10FTP
  • javascript中的this指向
  • WebServer 之 http连接处理(下)