首页 > 编程语言 >2024华为OD机试真题- 计算三叉搜索树的高度-(C++/Java/Python)-C卷D卷-100分

2024华为OD机试真题- 计算三叉搜索树的高度-(C++/Java/Python)-C卷D卷-100分

时间:2024-06-20 21:33:59浏览次数:14  
标签:Node 5000 Java 真题 Python 高度 插入 right 节点

 2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++) 

题目描述

定义构造三叉搜索树规则如下:

每个节点都存有一个数,当插入一个新的数时,从根节点向下寻找,直到找到一个合适的空节点插入。查找的规则是:

1.如果数小于节点的数减去500,则将数插入节点的左子树

2.如果数大于节点的数加上500,则将数插入节点的右子树

3.否则,将数插入节点的中子树

给你一系列数,请按以上规则,按顺序将数插入树中,构建出一棵三叉搜索树,最后输出树的高度。

输入描述

第一行为一个数 N,表示有 N 个数,1 ≤ N ≤ 10000

第二行为 N 个空格分隔的整数,每个数的范围为[1,10000]

输出描述

输出树的高度(根节点的高度为1)

用例1

输入

5

5000 2000 5000 8000 1800

输出

3

说明

最终构造出的树如下,高度为3:

用例2

输入

3

5000 4000 3000

输出

3

说明

最终构造出的树如下,高度为3:

用例3

输入

9

5000 2000 5000 8000 1800 7500 4500 1400 8100

输出

4

说明

最终构造出的树如下,高度为4:

考点

树结构

代码

c++
#include <bits/stdc++.h>
using namespace std;
struct Node{
    Node* left;
    Node* right;
    Node* mid;
    int val;
    int hight;//高度
    Node(Node* left,Node* right,Node* mid, int val, int hi):left(left),right(right),mid(mid),val(v

标签:Node,5000,Java,真题,Python,高度,插入,right,节点
From: https://blog.csdn.net/goldarmour/article/details/139829544

相关文章

  • python GUI:tkinter 信息管理系统——不会长胖的斜杠(浔川python推广部)
    总览前言主要实现登录注册修改运行登录注册登录成功主界面添加查询查询成功保存信息信息管理系统v1.1登录界面获取账号密码主界面查询查询成功显示信息信息管理系统v2.0登录主界面增加查询删除显示代码获取前言本系统主要通过tkinter模块实现,通过读取对应的文件,实现登......
  • python工具系列(亲测有效):在pycharm中复制粘贴时出现ENSP如何处理
    在pycharm中复制粘贴时出现ENSP如何处理在pycharm中复制粘贴时出现ENSP如何处理在pycharm中复制粘贴时出现ENSP如何处理安装nexchatgpt插件之后,生成的代码,如果直接粘贴到pycharm.py文件中,会出现ENSP图样,如下图所示:粘贴到jupyternotebook虽然看不出来,也是不能......
  • 新手小白包会(python) | OpenCV进阶教程,带你踏入计算机视觉领域
    目录一、OpenCV简介1.应用场景2.学习与使用二、OpenCV安装 1.安装2.验证三、OpenCV使用1.边缘检测1)sobel算子(cv2.Sobel()) 2)Scharr算子(cv.Scharr()) 3)laplacian(cv2.Laplacian())4)canny算法(cv.Canny())2.下采样(cv2.pyrDown())3.上采样(cv2.pyrUp())4.拉普拉斯金字塔......
  • Java基础
    1.Hashcode的作用Java的集合有两类,一类是List,还有一类是Set。前者有序可重复,后者无序不可重复。当我们在Set中添加元素的时候,怎么判断集合中是否存在该元素,我们可以用equals方法来判断,但是当元素很多的时候,这种方法显然就很慢了。于是有人发明哈希算法来提高集合中查找元素......
  • 基于python-深度学习的混凝土马路和泥地马路识别-含数据集+pyqt界面
    代码下载:https://download.csdn.net/download/qq_34904125/89434765本代码是基于pythonpytorch环境安装的。下载本代码后,有个requirement.txt文本,里面介绍了如何安装环境,环境需要自行配置。或可直接参考下面博文进行环境安装。深度学习环境安装教程-anaconda-python-pyto......
  • 基于python-CNN卷积神经网络的鱼类识别-含数据集+pyqt界面
    代码下载地址:https://download.csdn.net/download/qq_34904125/89434763本代码是基于pythonpytorch环境安装的。下载本代码后,有个requirement.txt文本,里面介绍了如何安装环境,环境需要自行配置。或可直接参考下面博文进行环境安装。深度学习环境安装教程-anaconda-python-......
  • java的CC1链分析与利用
    CC1链子分析CommonsCollections简介ApacheCommonsCollections是一个扩展了Java标准库里的Collection结构的第三方基础库,它提供了很多强有力的数据结构类型并实现了各种集合工具类。作为Apache开源项目的重要组件,被广泛运用于各种Java应用的开发。环境配置jdk版本:jdk8......
  • 如何用Pyinstaller将python脚本打包成exe文件?
    首先用打开cmd命令管理器下载pyinstallerpipinstallpyinstaller国内镜像源pipinstall-ihttps://pypi.douban.com/simple/pyinstaller#豆瓣源pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplepyinstaller#清华源本来我的文件夹只有一个py文件 需要我......
  • 重学java 79.JDK新特性 ⑤ JDK8之后的新特性
    别怕失败,大不了重头再来                          ——24.6.20一、接口的私有方法Java8版本接口增加了两类成员:        公共的默认方法        公共的静态方法Java9版本接口又新增了一类成员:......
  • java多线程
    目录多线程的实现方式多线程的第一种实现方式 继承Thread类的方式进行实现多线程的第二种实现方式 实现Runnable接口的方式进行实现利用Callable接口和Future接口方式实现 多线程中常用的成员方法 StringgetName()                返回此线程的名......