python 二叉树结构
时间: 2023-11-18 14:41:47 浏览: 96
python 二叉树
Python中的二叉树结构可以通过定义一个二叉树节点类来实现。每个节点包含一个数据项和两个指向左子树和右子树的指针。可以使用递归的方式来构建二叉树,并实现不同的遍历方法。下面是一个示例代码:
```python
class BinaryTreeNode:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
class BinaryTree:
def __init__(self, root):
self.root = root
def postorderTraversal(self, node):
if node is None:
return
self.postorderTraversal(node.left)
self.postorderTraversal(node.right)
print(node.data, end=' ')
def inorderTraversal(self, node):
if node is None:
return
self.inorderTraversal(node.left)
print(node.data, end=' ')
self.inorderTraversal(node.right)
def levelOrderTraversal(self, root):
if root is None:
return
queue = []
queue.append(root)
while queue:
node = queue.pop(0)
print(node.data, end=' ')
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
# 创建二叉树
rootNode = BinaryTreeNode(1)
rootNode.left = BinaryTreeNode(2)
rootNode.right = BinaryTreeNode(3)
rootNode.left.left = BinaryTreeNode(4)
rootNode.left.right = BinaryTreeNode(5)
rootNode.right.left = BinaryTreeNode(6)
rootNode.right.right = BinaryTreeNode(7)
# 创建二叉树对象
tree = BinaryTree(rootNode)
# 遍历二叉树
print("后序遍历:", end='')
tree.postorderTraversal(tree.root)
print("\n中序遍历:", end='')
tree.inorderTraversal(tree.root)
print("\n层次遍历:", end='')
tree.levelOrderTraversal(tree.root)
```
这段代码创建了一个二叉树,并通过后序遍历、中序遍历和层次遍历方法进行了遍历。你可以根据自己的需要进行修改和扩展。注意,在代码中,`BinaryTree`是二叉树的类,`BinaryTreeNode`是二叉树节点的类。`rootNode`是根节点。
阅读全文