将序列{34,23,15,98,115,28,107}生成一棵平衡二叉排序树,使得每次插入后保持该树仍为平衡二叉排序树。 【问题】请画出每次插入关键字后形成的二叉排序树
时间: 2023-09-04 16:08:43 浏览: 205
好的,我来回答你的问题并画出每次插入后形成的二叉排序树。
首先,我们需要知道平衡二叉排序树是指一棵空树或者具有以下性质的二叉树:
1. 左子树和右子树的高度差不超过1;
2. 左子树和右子树仍然是平衡二叉排序树;
3. 每个节点的左子树中所有节点的值都小于该节点的值;
4. 每个节点的右子树中所有节点的值都大于该节点的值。
根据这个性质,我们可以将给定的序列构造成一棵平衡二叉排序树。具体的插入过程如下:
1. 首先将序列的第一个元素34作为根节点插入空树中,得到下图所示的二叉树。
```
34
/ \
NULL NULL
```
2. 插入23,由于23比34小,所以将23插入34的左子树中,得到下图所示的二叉树。
```
34
/ \
23 NULL
/ \
NULL NULL
```
3. 插入15,由于15比34小,所以将15插入23的左子树中,得到下图所示的二叉树。
```
34
/ \
23 NULL
/ \
15 NULL
/ \
NULL NULL
```
4. 插入98,由于98比34大,所以将98插入34的右子树中,得到下图所示的二叉树。
```
34
/ \
23 98
/ \ / \
15 NULL NULL
/ \
NULL NULL
```
5. 插入115,由于115比34大,所以将115插入98的右子树中,得到下图所示的二叉树。
```
34
/ \
23 98
/ \ / \
15 NULL 115
/ \
NULL NULL
```
6. 插入28,由于28比34小,所以将28插入23的右子树中,得到下图所示的二叉树。
```
34
/ \
23 98
/ \ / \
15 28 NULL 115
/ \
NULL NULL
```
7. 插入107,由于107比98大,所以将107插入98的右子树中,得到下图所示的二叉树。
```
34
/ \
23 98
/ \ / \
15 28 NULL 115
/ \
NULL 107
```
最终,我们得到了一棵平衡二叉排序树。
阅读全文