`
wudikua123
  • 浏览: 63061 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

求三叉树高度

 
阅读更多
有12345个结点的满3叉数的高度为_____写出计算过程

                                1                      层:1 节点数:1
                     /          |              \              
                   2          3               4              层:2 节点数:3
                 / | \         / | \            / | \
                5 6 7   8 9 10     11 12 13          层:3 节点数:9

满三叉树每层节点数目
假设k-1层有n个节点 那么第k层就应该有3n个节点。也就是说这是一个首项是1,公比是3的等比数列。第n层节点数an可以表示为
          an=a1*q^(n-1) = 1*3(n-1) = 3^(n-1)   

满三叉树总的节点数目
总的节点数目就是对各层节点数目求和,每层的节点数目计算公式已经有了。然后就是公比数列求和就行了。一个高位n的满三叉树总节点个数
          sn = a1*(1-q^n)/(1-q) = 1*(1-3^n)/(1-3) = (3^n-1)/2
         
其实有了这个公式这题就可以做了,可以估计一下。求得一个n和n+1让12345在sn和sn'之间就行了。

下面给出一个较为严格的推导。
                             ....
                           /.......\      
                                (3^(k-1)-1)/2   层:k-1
                         /          \    
                   (3^(k-1)+1)/2   (3^k-1)/2    层:k
设一个有n层的满三叉树的节点总数为n,那么
               (3^(k-1)+1)/2  <= n <= (3^k-1)/2
              
               3^(k-1)+1 <= 2n
               3^k-1 >= 2n

               k <= log3(2n - 1) - 1
               k >= log3(2n + 1)
              
对k向下取整就行了。


分享到:
评论

相关推荐

    一种数据结构—三叉树.pdf

    ### 三叉树的概念 三叉树是一种扩展了二叉树概念的数据结构,它允许每个节点最多有三个子节点,分别是左子节点、中子节点和右子节点。与二叉树不同的是,三叉树的节点不再是只有左右之分,而是多了一个中间分支。...

    c语言实现三叉哈夫曼树

    2. **合并**:每次从集合中选择三个权值最小的树,并创建一个新的三叉树,其中新树的根节点权值等于这三棵树根节点权值之和,这三棵树分别成为新树的左、中、右子树。 3. **迭代**:重复上述步骤,直到集合中只剩下...

    【免费题库】华为OD机试 - 计算三叉搜索树的高度(Java & JS & Python & C & C++).html

    【免费题库】华为OD机试 - 计算三叉搜索树的高度(Java & JS & Python & C & C++).html

    一种新型有序数据结构:容量平衡三叉查找树.pdf

    1. 较低的最坏高度:通过三叉树的结构,CBTT的树高相比于其他有序数据结构有显著降低,这有助于减少查找时所需的比较次数。 2. 易于实现区间操作:三叉树结构使得执行范围查找等操作更为方便。 3. 结构稳定性好:...

    【职业技能大赛计算机程序设计员赛项】理论试题及参考答案.pdf

    9. **三叉树高度**:一棵有40个节点的三叉树的最小高度是log3(40)+1,约为4.6,向上取整为5,选项C正确。 10. **顺序栈**:如果元素出栈顺序为s2, s3, s4, s6, s5, s1,说明在s6出栈前s5不能出栈,因此顺序栈至少...

    (C卷,100分)- 计算三叉搜索树的高度(Java & JS & Python & C).png

    华为OD正版题库,CD卷,2024原题库。超低价可下载包含多种代码和解析,不用购买高价的专栏,任何问题可私信

    数据结构源码之二叉树的三叉链表

    ### 数据结构源码之二叉树的三叉链表 #### 一、三叉链表的概念与实现 在计算机科学中,二叉树是一种常用的数据结构。传统的二叉树节点通常包含两个指针:分别指向左子节点和右子节点。而三叉链表则在此基础上增加...

    华为OD机试C卷- 计算三叉搜索树的高度(Java & JS & Python & C).md-免费看解析和代码

    私信博主获取三天体验卡,免费看所有华为OD真题、考试报告、手撕代码、面试记录

    很强的资源:数据结构题库+答案

    - **答案**: 当三叉树高度为3时,最多有 \(1 + 3 + 9 = 13\) 个节点;当高度为4时,最多有 \(13 + 27 = 40\) 个节点;当高度为5时,最多有 \(40 + 81 &gt; 50\) 个节点。因此,该树的最小高度为5。正确选项是C。 ### ...

    二叉树的三叉链表实现(c语言)

    查询节点信息的函数可能包括查找特定值的节点,或者获取节点的深度、高度等信息: ```c Node* search(Node* root, int value) {...} int depth(Node* root) {...} ``` 修改节点信息的函数需要找到指定节点并更新其...

    【职业技能大赛计算机程序设计员赛项】理论试题及参考答案.docx

    设某棵三叉树中有40个结点,求该三叉树的最小高度。 **解答**: 对于一棵三叉树,当它是一棵满三叉树时,高度是最小的。一个满三叉树的高度\(h\)和节点数\(n\)之间的关系可以用以下公式表示: \[ n = 1 + 3 + 3^2 +...

    第6章数据结构习题题目及答案树和二叉树答案.doc

    对于度数限制为2或0的二叉树,最少节点数是2^h - 1,而对于三叉树,这个公式变为3^h - 1,所以对于244个节点的完全三叉树,高度h = 6。 问题6.9提到的二叉树的后序遍历可以用于节点编号,因为它保证了每个节点的...

    第6章-树和二叉树-作业(2).pdf

    例如,一个有244个结点的完全三叉树的高度可通过迭代求解。 4. **二叉树高度**:对于具有1025个结点的二叉树,其高度h可能在11至1025之间,因为二叉树至少需要1层(1个结点)达到1025个结点,而最坏情况下(完全...

    第五部分 树 带答案.pdf

    - 类似二叉树,三叉树也有类似的性质,例如高度为h的完全三叉树结点总数和度为m的结点数量的关系。 9. **二叉树和对应树的遍历关系**: - 树的后根遍历与对应的二叉树的中根遍历相同。 10. **特殊二叉树的构造**...

    第五部分 树 带答案.docx

    7. **三叉树**:三叉树是每个节点最多有三个子节点的树,其性质类似于二叉树,但节点度可以是0、1、2或3。 8. **树的遍历**:树的遍历包括先根遍历(根-左-右)、后根遍历(左-右-根)和中根遍历(左-根-右)。对于...

    数据结构-树的一些练习题

    11. **树的存储结构**:树可以使用链式存储(如二叉链表、三叉链表)或顺序存储结构来实现。对于非递归的后序遍历,三叉链表可以简化算法实现。 12. **满二叉树和完全二叉树**:满二叉树是所有层都完全填充的二叉树...

    图解数据结构6-树及树的遍历

    - **三叉树(Ternary Tree)**:每个节点最多有三个子节点。 - **N叉树(N-ary Tree)**:每个节点最多有N个子节点,N可以是任意自然数。 #### 三、树的表示方法 树可以通过多种方式来表示,包括但不限于: - **图形...

Global site tag (gtag.js) - Google Analytics