数据结构与算法简单问题,构造平衡二叉树,求解,急,谢谢

数据结构与算法简单问题,构造平衡二叉树,求解,急,谢谢五、(20分)已知一个长度为11的线性表List=(12,24,36,90,52,30,41,8,10,38,61)... 数据结构与算法简单问题,构造平衡二叉树,求解,急,谢谢五、(20分)已知一个长度为11的线性表List=(12, 24, 36, 90, 52, 30, 41, 8, 10, 38, 61),试回答下面问题
(1)将线性表元素依次插入一个空的平衡二叉树,画出所得平衡二叉树,如果假设每个元素查找概率相同,则平均查找长度为多少?
展开
 我来答
瑞候端瓜0Y
2017-06-02 · TA获得超过2039个赞
知道小有建树答主
回答量:323
采纳率:100%
帮助的人:95.8万
展开全部
(1) 插入12, 这是第一个结点,是根结点.

(2) 插入24, 比12大,作为12的右分支.

    12
     \
      24

(3) 插入36, 结点12的平衡因子BF变成-2(右子树过高),要左旋(逆时针旋转),
    此时,结点24成为根结点.
    平衡因子BF(Balance Factor)就是:
    将二叉树上结点的 左子树深度 减去 右子树深度的值.

    12  
     \
      24         24
       \        /  \
        36     12   36 
                左旋后

(4) 插入90, 结点24的BF是-1,二叉树仍然保持平衡.

      24
     /  \
    12   36 
          \
           90

(5) 插入52, 结点36的BF是-2,结点90的BF是+1,两个符号不一致,结点90和52先右旋,
    此时,结点52的BF是-1,结点36的BF是-2,再对结点36,52,90进行左旋.


      24             24                24
     /  \           /  \              /  \
    12   36        12   36           12   52
          \              \                / \
           90            52              36  90
          /                \
         52                90
                    右旋后             左旋后

(6) 插入30, 结点52的BF是+1,结点24的BF是-2,两个符号不一致,
    结点30,36和52先右旋,此时,结点36的BF是-1,结点24的BF是-2,
    结点12,24和36进行左旋.

       24               24                   36
      /  \             /  \                 /  \
     12   52          12   36              24   52
          / \              / \            / \    \
         36  90           30  52         12  30   90
        /                      \
       30                      90
                       右旋后               左旋后

(7) 插入41, 二叉树仍然保持平衡.

          36
        /    \
       24    52
      / \    / \
    12  30  41  90

(8) 插入8, 二叉树仍然保持平衡.

           36
         /    \
        24    52
       / \    / \
     12  30  41  90
     /
    8

(9) 插入10, 结点8的BF是-1,结点12的BF是+2,结点24的BF是+2,
    结点8和10先左旋,此时,结点10的BF是+1,结点12的BF是+2,
    对结点10,8,12进行右旋.

           36                    36                  36
         /    \                /    \              /     \
        24    52              24    52            24     52
       / \    / \            / \    / \          / \     / \
     12  30  41  90        12  30  41  90       10  30  41  90
     /                     /                   / \
    8                     10                  8  12
     \                   /
      10                8
                               左旋后              右旋后

(10) 插入38, 二叉树仍然保持平衡.

              36
          /        \
         24        52
        / \       /  \
      10   30    41  90
      / \       /
     8  12     38

(11) 插入61, 二叉树仍然保持平衡.

              36
          /        \
         24        52
        / \       /  \
      10   30    41  90
      / \       /    /
     8  12     38   61

    这就是最后得到的平衡二叉树

  
二叉树的总结点数 N=11

如果假设每个元素查找概率相同,平均查找长度是 log2(N)=log2(11),
表示以2为底,取11的对数.
美林数据技术股份有限公司
2020-10-29 广告
Tempo大数据分析平台,是一款面向企业用户的数据分析与应用工具,为用户提供报表设计、可视化分析、机器学习、文本分析等自助式数据分析与探索。平台基于大数据架构,集数据接入、数据分析探索、成果管理与应用为一体,面向企业全民用户提供从数据到业务... 点击进入详情页
本回答由美林数据技术股份有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式