Python实现二叉树
时间: 2023-11-05 13:09:28 浏览: 115
二叉树可以用 Python 中的类来表示,每个节点包含一个值和左右子树指针。下面是一个示例代码:
```python
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
class BinaryTree:
def __init__(self):
self.root = None
def insert(self, value):
node = Node(value)
if self.root is None:
self.root = node
else:
q = [self.root]
while q:
curr = q.pop(0)
if curr.left is None:
curr.left = node
return
else:
q.append(curr.left)
if curr.right is None:
curr.right = node
return
else:
q.append(curr.right)
def inorder(self, node):
if node is not None:
self.inorder(node.left)
print(node.value)
self.inorder(node.right)
```
在上面的代码中,`Node` 类表示二叉树的节点,包含节点值和左右子树指针。`BinaryTree` 类表示二叉树,包含一个根节点,以及实现插入和中序遍历的方法。
`insert` 方法用于将一个值插入到二叉树中。如果根节点为空,则将新节点作为根节点。否则,从根节点开始,在树中找到第一个左右子树都为空的节点,将新节点插入到该位置。
`inorder` 方法用于中序遍历二叉树。从根节点开始,先递归遍历左子树,然后输出节点值,再递归遍历右子树。这里采用递归实现。
阅读全文