【2024年华为OD机试】(C卷,100分)- 生成哈夫曼树 (JavaScript&Java & Python&C/C++)

一、问题描述

哈夫曼树构建与题目解析

题目描述

给定长度为 ( n ) 的无序数字数组,每个数字代表二叉树的叶子节点的权值,且数组中的值均大于等于 1。

请完成一个函数,根据输入的数字数组生成哈夫曼树,并将哈夫曼树按照中序遍历输出。

为了保证输出的二叉树中序遍历结果统一,需满足以下限制:

  1. 二叉树节点中,左节点权值小于右节点权值,根节点权值为左右节点权值之和。
  2. 当左右节点权值相同时,左子树高度小于等于右子树高度。

输入描述

  • 输入一个整数 ( n ),表示叶子节点数量。
  • 接下来输入一组权值,分别是叶子节点的权值。

输出描述

对生成的哈夫曼树进行中序遍历,输出结果为一个数组,数值之间使用空格分隔。

你可能感兴趣的:(算法汇集笔记总结(保姆级),java,华为od,c语言,javascript,游戏,python)