依次输入表(30, 15, 28,20,24, 10, 12,68,35,50,46,55)中的元素,生成一棵二叉排序树,要 求: 1、试画出生成之后的二叉排序树。 2、对该二叉排序数作中根遍历,写出遍历序列。 3、编程构建一个二叉排宇树,并中根
时间: 2023-07-27 19:20:38 浏览: 82
我可以回答您的问题,但首先我需要声明一下:我不是一个可以进行图形绘制或编程的工具,我只能提供文本形式的回答和代码片段。那么,针对您的问题,我可以给出以下回答:
1. 生成的二叉排序树如下图所示:
```
30
/ \
15 28
/ \ \
10 20 24
\ \
12 35
/ \
50 68
/ \
46 55
```
2. 中根遍历的序列为:`10,12,15,20,24,28,30,35,46,50,55,68`
3. 下面是使用 Python 语言实现二叉排序树的代码片段,其中包括插入节点和中根遍历的实现:
```python
# 定义二叉排序树节点
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
# 插入节点
def insertNode(root, val):
if not root:
root = TreeNode(val)
return root
if val < root.val:
root.left = insertNode(root.left, val)
else:
root.right = insertNode(root.right, val)
return root
# 中根遍历
def inorderTraversal(root):
res = []
if not root:
return res
res += inorderTraversal(root.left)
res.append(root.val)
res += inorderTraversal(root.right)
return res
# 构建二叉排序树
nums = [30, 15, 28, 20, 24, 10, 12, 68, 35, 50, 46, 55]
root = None
for num in nums:
root = insertNode(root, num)
print(inorderTraversal(root)) # 输出中根遍历结果
```
希望这些回答能够帮助到您。如有其他问题,请随时提出。
阅读全文