将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果。
时间: 2023-04-19 08:04:19 浏览: 227
首先,将给定的数字按顺序插入二叉搜索树中。插入时,如果当前节点为空,则将数字插入该节点;如果当前节点不为空,则比较数字与节点值的大小,如果小于节点值,则将数字插入左子树,否则插入右子树。
判断一棵二叉树是否为完全二叉树,可以通过层序遍历来实现。层序遍历时,从根节点开始,按层次顺序遍历每个节点,如果在遍历过程中发现某个节点的左子树为空,但右子树不为空,或者某个节点的左右子树都为空,但后面还有非空节点,则该树不是完全二叉树。
最后,输出层序遍历的结果即可。
相关问题
给定序列{3,5,7,9,11,13,15,17}:按表中元素的顺序依次插入一棵初始为空的二叉搜索树。画出插入完成后的二叉搜索树,并求其在等概率情况下搜索成功的平均搜索长度;
二叉搜索树的结构是左子树的所有节点值都小于根节点,右子树的所有节点值都大于根节点。按照给定的序列依次插入节点,我们可以得到以下的二叉搜索树:
```
3
\
5
\
7
\
9
\
11
\
13
\
15
\
17
```
在等概率情况下搜索成功的平均搜索长度可以用以下公式计算:
$$
E = \frac{\sum_{i=1}^{n}dep_i}{n}
$$
其中 $dep_i$ 表示搜索元素 $i$ 时的深度,$n$ 表示二叉搜索树中元素的个数。
对于本题中的二叉搜索树,它的深度为 $8$,元素个数为 $8$。我们可以用递归的方式计算每个节点的深度并求和,得到:
$$
E = \frac{1+2+2+3+3+4+4+4}{8} = \frac{23}{8} \approx 2.88
$$
因此,在等概率情况下搜索成功的平均搜索长度为 $2.88$。
给定二叉搜索树如下图所示,向二叉搜索树依次插入27,65,35,最后得到的二叉搜索树中35的双亲是_____。
给定初始二叉搜索树:
```
50
/ \
30 70
/ \
20 40
```
首先插入27:
1. 因为27小于30,所以在30的左子树插入:
```
50
/ \
30 70
/ \
20 40 27
```
接着插入65:
1. 65比50大,比70小,因此在50和70之间:
```
50
/ \
30 70
/ \
20 40 27
\
65
```
最后插入35:
1. 35比30小,因此插入到30的左子树:
```
50
/ \
30 70
/ \ \
20 40 27
\
65
/
35
```
在这个新的二叉搜索树中,35的双亲是30。
阅读全文