欢迎使用CSDN-markdown编辑器
来源:互联网 发布:大数据细分领域 编辑:程序博客网 时间:2024/06/15 15:06
定义树结构
class BinaryTree: def __init__(self, value): self.value = value self.left_child = None self.right_child = None
测试树结构
tree = BinaryTree('a')print(tree.value) # aprint(tree.left_child) # Noneprint(tree.right_child) # None
右侧插入
def insert_right(self, value): if self.right_child == None: self.right_child = BinaryTree(value) else: new_node = BinaryTree(value) new_node.right_child = self.right_child self.right_child = new_node
左侧插入
def insert_left(self, value): if self.left_child == None: self.left_child = BinaryTree(value) else: new_node = BinaryTree(value) new_node.left_child = self.left_child self.left_child = new_node
插入节点
`a_node = BinaryTree(‘a’)
a_node.insert_left(‘b’)
a_node.insert_right(‘c’)
b_node = a_node.left_child
b_node.insert_right(‘d’)
c_node = a_node.right_child
c_node.insert_left(‘e’)
c_node.insert_right(‘f’)
d_node = b_node.right_child
e_node = c_node.left_child
f_node = c_node.right_child
print(a_node.value) # a
print(b_node.value) # b
print(c_node.value) # c
print(d_node.value) # d
print(e_node.value) # e
print(f_node.value) # f`
前序遍历
def pre_order(self): print(self.value) if self.left_child: self.left_child.pre_order() if self.right_child: self.right_child.pre_order()
中序遍历
def in_order(self): if self.left_child: self.left_child.in_order() print(self.value) if self.right_child: self.right_child.in_order()
后序遍历
def post_order(self): if self.left_child: self.left_child.post_order() if self.right_child: self.right_child.post_order() print(self.value)
阅读全文
0 0
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- web前端-JavaScript知识体系(初学者)
- 高级软件工程课程总结
- 哈夫曼树的基本构建与操作
- QT生成的exe无法定位程序输入点 于动态链接库 报错原因
- 依赖注入
- 欢迎使用CSDN-markdown编辑器
- C语言基础与提高之指针
- 1-1 欢迎来的C++世界
- Oracle数据库一些名词理解
- 同一台电脑教你配置多个Tomcat的环境变量
- JVM系列(一)垃圾回收算法
- SpringBoot的入门搭建(一)
- NavigationView中获取headerLayout的方法
- 牧函 | 十字架和垃圾场