python中如何实现二叉树?
时间: 2024-05-06 10:15:33 浏览: 85
在Python中可以使用类来实现二叉树。每个节点都是一个对象,包含了一个数据项和左右子节点的引用。
下面是一个简单的二叉树类的示例代码:
```python
class TreeNode:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
class BinaryTree:
def __init__(self):
self.root = None
def insert(self, data):
new_node = TreeNode(data)
if self.root is None:
self.root = new_node
else:
current = self.root
while True:
if data < current.data:
if current.left is None:
current.left = new_node
break
else:
current = current.left
else:
if current.right is None:
current.right = new_node
break
else:
current = current.right
def inorder_traversal(self, node):
if node is not None:
self.inorder_traversal(node.left)
print(node.data)
self.inorder_traversal(node.right)
```
在这个例子中,`TreeNode`类表示树的节点,`BinaryTree`类表示整个二叉树。`insert`方法用于向树中插入数据,`inorder_traversal`方法用于中序遍历整个树。
要创建一个二叉树,只需实例化`BinaryTree`类并调用`insert`方法即可,例如:
```python
tree = BinaryTree()
tree.insert(5)
tree.insert(3)
tree.insert(7)
tree.insert(1)
tree.insert(9)
```
然后,使用`inorder_traversal`方法可以中序遍历整个树:
```python
tree.inorder_traversal(tree.root)
```
输出结果为:
```
1
3
5
7
9
```
阅读全文