对于给定结点的关键字集合 k ={5,7,3,1,9,6,4,8,2,10}, (1)试构造一棵二叉排序树; (2)求等概率情况下的平均查找长度 ASL 。
时间: 2023-08-15 22:08:41 浏览: 236
好的,我来回答你的问题。
(1) 按照二叉排序树的构造规则,我们可以先将 5 作为根节点,然后依次插入 7、3、1、9、6、4、8、2、10。最终构造出的二叉排序树如下所示:
```
5
/ \
3 7
/ \ \
1 4 9
\ \ / \
2 6 8 10
```
(2) 平均查找长度 ASL 是指在等概率情况下查找一个元素所需要的平均比较次数。对于一棵有 n 个结点的二叉排序树,其 ASL 可以通过以下公式计算:
ASL = (所有结点的深度之和) / n
因此,我们只需要计算出每个结点的深度,然后将它们相加并除以 10 即可得到 ASL。对于上面所构造的二叉排序树,每个结点的深度如下所示:
```
5(1)
/ \
3(2) 7(2)
/ \ \
1(3) 4(3) 9(3)
\ / / \
2(4)6(4)8(4)10(4)
```
其中括号中的数字表示该结点的深度。因此,所有结点的深度之和为 1+2+2+3+3+3+4+4+4+4=30,将其除以 10,得到 ASL=3。
因此,在等概率情况下,查找一个元素所需要的平均比较次数为 3 次。
相关问题
对于给定结点的关键字集合K={5,7,3,1,9,6,4,8,2,10}, 构造一棵二叉排序树
首先,将第一个关键字5当作根节点。接下来,依次将每个关键字插入到树中。
插入7时,由于7>5,因此插入到根节点的右子树中。现在,根节点的右子树为7。
插入3时,由于3<5,因此插入到根节点的左子树中。现在,根节点的左子树为3,右子树为7。
插入1时,由于1<5,因此插入到根节点的左子树中。现在,根节点的左子树为3,左子树的左子树为1,右子树为7。
插入9时,由于9>5,因此插入到根节点的右子树中。现在,根节点的左子树为3,左子树的左子树为1,右子树为7,右子树的右子树为9。
插入6时,由于6<7,因此插入到7的左子树中。现在,根节点的左子树为3,左子树的左子树为1,右子树为7,右子树的左子树为6,右子树的右子树为9。
插入4时,由于4<5,因此插入到5的左子树中。现在,根节点的左子树为3,左子树的左子树为1,左子树的右子树为4,右子树为7,右子树的左子树为6,右子树的右子树为9。
插入8时,由于8>7,因此插入到7的右子树中。现在,根节点的左子树为3,左子树的左子树为1,左子树的右子树为4,右子树为7,右子树的左子树为6,右子树的右子树为9,右子树的右子树的左子树为8。
插入2时,由于2<3,因此插入到3的左子树中。现在,根节点的左子树为3,左子树的左子树为1,左子树的左子树的右子树为2,左子树的右子树为4,右子树为7,右子树的左子树为6,右子树的右子树为9,右子树的右子树的左子树为8。
插入10时,由于10>9,因此插入到9的右子树中。现在,根节点的左子树为3,左子树的左子树为1,左子树的左子树的右子树为2,左子树的右子树为4,右子树为7,右子树的左子树为6,右子树的右子树为9,右子树的右子树的左子树为8,右子树的右子树的右子树为10。
最终,得到的二叉排序树如下所示:
```
5
/ \
3 7
/ \ / \
1 4 6 9
/ / \
2 8 10
```
对于给定结点的关键字集合K={4,8,2,9,1,3,6,7,5}试构造一棵二叉排序树
首先,将第一个关键字4当作根节点。接下来,依次将每个关键字插入到树中。
插入8时,由于8>4,因此插入到根节点的右子树中。现在,根节点的右子树为8。
插入2时,由于2<4,因此插入到根节点的左子树中。现在,根节点的左子树为2,右子树为8。
插入9时,由于9>4和9>8,因此插入到8的右子树中。现在,根节点的左子树为2,右子树为8,右子树的右子树为9。
插入1时,由于1<4和1<2,因此插入到2的左子树中。现在,根节点的左子树为2,左子树的左子树为1,右子树为8,右子树的右子树为9。
插入3时,由于3<4和3>2,因此插入到2的右子树中。现在,根节点的左子树为2,左子树的左子树为1,左子树的右子树为3,右子树为8,右子树的右子树为9。
插入6时,由于6>4和6<8,因此插入到8的左子树中。现在,根节点的左子树为2,左子树的左子树为1,左子树的右子树为3,右子树为8,右子树的左子树为6,右子树的右子树为9。
插入7时,由于7>4和7>8和7>6,因此插入到8的右子树中。现在,根节点的左子树为2,左子树的左子树为1,左子树的右子树为3,右子树为8,右子树的左子树为6,右子树的右子树为9,右子树的右子树的左子树为7。
插入5时,由于5>4和5<8和5>6,因此插入到6的右子树中。现在,根节点的左子树为2,左子树的左子树为1,左子树的右子树为3,右子树为8,右子树的左子树为6,右子树的右子树为9,右子树的右子树的左子树为7,右子树的左子树的左子树为5。
最终,得到的二叉排序树如下所示:
```
4
/ \
2 8
/ \ / \
1 3 6 9
/ / \
5 7 None
```
注意,最后一个关键字5插入到了6的右子树中,而不是8的左子树中,因为6的深度比8的深度小。
阅读全文