给定一组关键序列{23,76,47,53,48,12,85,30,90,100},请完成以下各题:(1)按照表中元素的顺序构造一棵平衡二叉排序树,并求其在等概率的情况下的查找成功的平均查找长度;(2)若对表中元素先进行排序构成有序表,采用折半查找,画出折半查找树。
时间: 2023-12-10 20:02:58 浏览: 81
将已知数组元素构造一棵二叉树
5星 · 资源好评率100%
(1)按照表中元素的顺序构造一棵平衡二叉排序树,并求其在等概率的情况下的查找成功的平均查找长度。
首先,按照中序遍历的方式将给定序列排序:{12,23,30,47,48,53,76,85,90,100}。
然后,按照平衡二叉排序树的构造方法,取中点元素 48 作为根节点,左子树为{12,23,30,47},右子树为{53,76,85,90,100}。接着,分别在左子树和右子树中取中点元素作为左右子树的根节点,得到如下平衡二叉排序树:
48
/ \
23 85
/ \ / \
12 30 76 90
\ \
47 100
在等概率的情况下,查找成功的平均查找长度为树高的一半,即 (3+3+2+2+1+1+2+3+3+4)/10 = 2.2。
(2)若对表中元素先进行排序构成有序表,采用折半查找,画出折半查找树。
首先,将给定序列进行排序:{12,23,30,47,48,53,76,85,90,100}。
然后,取中点元素 48 作为根节点,左子树为{12,23,30,47},右子树为{53,76,85,90,100}。接着,分别在左子树和右子树中取中点元素作为左右子树的根节点,得到如下折半查找树:
48
/ \
/ \
/ \
/ \
/ \
/ \
/ \
23 85
/ \ / \
/ \ / \
12 30 76 90
| | / \
| | / \
| | / \
| | / \
| | / \
| | / \
47 53 100 null
其中,每个节点表示一个有序子表的中点元素,空节点表示子表为空。折半查找树是一棵二叉树,每个节点的左子树包含小于该节点的元素,右子树包含大于该节点的元素。在等概率的情况下,折半查找的平均查找长度为 (1+2+2+3+3+3+3+4+4+5)/10 = 3.0。
阅读全文