数据结构与算法简单问题,构造平衡二叉树,求解,急,谢谢
数据结构与算法简单问题,构造平衡二叉树,求解,急,谢谢五、(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)将线性表元素依次插入一个空的平衡二叉树,画出所得平衡二叉树,如果假设每个元素查找概率相同,则平均查找长度为多少? 展开
(1)将线性表元素依次插入一个空的平衡二叉树,画出所得平衡二叉树,如果假设每个元素查找概率相同,则平均查找长度为多少? 展开
1个回答
展开全部
(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 广告
2020-10-29 广告
Tempo大数据分析平台,是一款面向企业用户的数据分析与应用工具,为用户提供报表设计、可视化分析、机器学习、文本分析等自助式数据分析与探索。平台基于大数据架构,集数据接入、数据分析探索、成果管理与应用为一体,面向企业全民用户提供从数据到业务...
点击进入详情页
本回答由美林数据技术股份有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询