python二叉链表表示树
时间: 2023-10-13 19:13:08 浏览: 94
可以使用Python中的类和对象来实现二叉链表表示树。具体来说,每个节点需要包含三个属性:节点值、左子节点和右子节点。如果左子节点或右子节点不存在,则可以将其赋值为None。
以下是一个简单的实现示例:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
class BinaryTree:
def __init__(self):
self.root = None
def add_node(self, val):
new_node = TreeNode(val)
if self.root is None:
self.root = new_node
else:
current_node = self.root
while True:
if val < current_node.val:
if current_node.left is None:
current_node.left = new_node
break
else:
current_node = current_node.left
else:
if current_node.right is None:
current_node.right = new_node
break
else:
current_node = current_node.right
```
在这个实现中,BinaryTree类用于管理整个二叉树,add_node方法用于向树中添加新节点。每个节点都是一个TreeNode对象,包含节点值、左子节点和右子节点属性。在add_node方法中,我们首先创建一个新的节点,然后遍历树,将其插入到合适的位置上。
接下来,我们可以使用BinaryTree类来创建一个简单的二叉树:
```python
tree = BinaryTree()
tree.add_node(5)
tree.add_node(3)
tree.add_node(7)
tree.add_node(1)
tree.add_node(9)
```
这将创建以下二叉树:
```
5
/ \
3 7
/ / \
1 9 None
```
现在,我们可以使用其他方法来对树进行遍历、查找、删除等操作。
阅读全文