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 not self.root:
self.root = new_node
else:
queue = [self.root]
while queue:
node = queue.pop(0)
if not node.left:
node.left = new_node
return
elif not node.right:
node.right = new_node
return
else:
queue.append(node.left)
queue.append(node.right)
# 先序遍历
def preorder(self, node):
if not node:
return
print(node.data, end=' ')
self.preorder(node.left)
self.preorder(node.right)
# 中序遍历
def inorder(self, node):
if not node:
return
self.inorder(node.left)
print(node.data, end=' ')
self.inorder(node.right)
# 后序遍历
def postorder(self, node):
if not node:
return
self.postorder(node.left)
self.postorder(node.right)
print(node.data, end=' ')
# 测试代码
if __name__ == '__main__':
tree = BinaryTree()
tree.insert(1)
tree.insert(2)
tree.insert(3)
tree.insert(4)
tree.insert(5)
tree.insert(6)
tree.insert(7)
print('先序遍历:', end='')
tree.preorder(tree.root)
print('\n中序遍历:', end='')
tree.inorder(tree.root)
print('\n后序遍历:', end='')
tree.postorder(tree.root)
在上面的代码中,我们首先定义了一个 TreeNode 结构体,用于表示二叉树中的节点。然后定义了一个 BinaryTree 类,用于表示二叉树本身。在 BinaryTree 类中,我们实现了插入节点、先序遍历、中序遍历和后序遍历四个方法,分别用于向二叉树中插入节点和遍历二叉树。
最后,我们在 __main__ 函数中测试了这些方法的正确性。
原文地址: https://www.cveoy.top/t/topic/qxL 著作权归作者所有。请勿转载和采集!