设计一个代码实现以下功能:输入10个不同整数,依次插入到一颗初始为空的二叉排序树中,然后进行中序遍历,以验证树的正确性
时间: 2024-03-24 15:38:08 浏览: 38
好的,以下是一个 Python 代码实现:
```python
class Node:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
class BST:
def __init__(self):
self.root = None
def insert(self, val):
if not self.root:
self.root = Node(val)
return
curr = self.root
while True:
if val < curr.val:
if not curr.left:
curr.left = Node(val)
return
curr = curr.left
else:
if not curr.right:
curr.right = Node(val)
return
curr = curr.right
def inorder(self, node):
if not node:
return
self.inorder(node.left)
print(node.val, end=" ")
self.inorder(node.right)
if __name__ == '__main__':
bst = BST()
nums = [int(x) for x in input("请输入10个不同的整数:").split()]
for num in nums:
bst.insert(num)
bst.inorder(bst.root)
```
这个代码定义了一个 `Node` 类来表示二叉排序树中的节点,每个节点包含一个值 `val`,以及左右子节点 `left` 和 `right`。还定义了一个 `BST` 类来表示二叉排序树,其中包含一个根节点 `root`,以及 `insert` 和 `inorder` 两个方法。`insert` 方法用于将一个新的值插入到二叉排序树中,`inorder` 方法用于对树进行中序遍历并输出结果。
在 `main` 函数中,我们首先读取用户输入的10个不同整数,并将它们插入到二叉排序树中。然后,调用 `inorder` 方法对树进行中序遍历,输出结果。如果输出结果是按照从小到大的顺序输出这10个整数,那么说明二叉排序树的构建和遍历都是正确的。
阅读全文