当前位置:萝卜系统 > 硬件软件教程 > 详细页面

[腾讯笔试]在完整的二进制排序树中找到三个节点中最小子树的根节点

[腾讯笔试]在完整的二进制排序树中找到三个节点中最小子树的根节点

更新时间:2023-06-24 文章作者:未知 信息来源:网络 阅读次数:

根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。

排序二叉树的建立_二叉排序树的查找_二叉树的查找

标题: 完整的二进制排序树的深度为k,节点数为2 ^ k-1;给定k值和任何三个节点,则节点值为1到(2 ^ k-1),输出包含三个节点中最小子树的根节点. 样本输入: 4 10 15 13样本输出: 12

排序二叉树的建立_二叉排序树的查找_二叉树的查找

首先,让我们了解完整二进制排序的数量. 以下是4级完整的二进制排序树:

排序二叉树的建立_二叉排序树的查找_二叉树的查找

*          8
*        /   \
*       4     12
*      / \   /   \
*     2  6   10   14
*    /\  /\  / \ /  \
*   1 3 5 7 9 11 13 15

二叉排序树的查找_排序二叉树的建立_二叉树的查找

从上图可以看到,完整的二进制排序树的中阶遍历是从1到2 ^ k-1的递增序列(k是层数). 因此,只要给出层数,我们就可以确定二进制排序树. 同时二叉排序树的查找,从观察结果可以看出,二元排序树从上到下的根节点只是所有元素二元搜索的中间节点. 根据上述规则,为解决三节点最小子树的根节点问题,可以得到以下几点: 无需建立二叉树,从1?2 ^ k-1递增数组是输入时完整的二叉排序树当三个元素在二分法节点的两侧时,当前二分法节点是要找到的最小子树的根节点(根据此规则,我们不需要判断这三个元素,只需确定最大元素和最小元素的位置即可)当最小节点的值大于二分法节点的值时,继续在二分法的右半部分搜索. 当最大节点的值小于二分法节点的值时,请继续在二分法的左半部分搜索. 根据以上节点二叉排序树的查找,编写代码如下:


本文来自本站,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-249778-1.html



温馨提示:喜欢本站的话,请收藏一下本站!

本类教程下载

系统下载排行

网站地图xml | 网站地图html