二叉树的实现
2023-03-20 14:49:35 时间
# coding:utf8 class Node(): def __init__(self, _item): self.item = _item self.left = None self.right = None class Tree(): def __init__(self): self.root = None def append(self, _item): node = Node(_item) cur = self.root point_list = [cur] # 如果添加的是根节点 if cur == None: self.root = node return while True: target_point = point_list.pop(0) if target_point.left == None: target_point.left = node return else: point_list.append(target_point.left) if target_point.right == None: target_point.right = node return else: point_list.append(target_point.right) # 广度优先搜索遍历 def travel(self): cur = self.root point_list = [cur] while point_list: target_point = point_list.pop(0) print(target_point.item) if target_point.left: point_list.append(target_point.left) if target_point.right: point_list.append(target_point.right) # 深度优先搜索遍历 def forward(self, root): # 前序遍历 :根左右 if root == None: return print(root.item) self.forward(root.left) self.forward(root.right) def middle(self, root): # 中序遍历 :左根右 if root == None: return self.middle(root.left) print(root.item) self.middle(root.right) def back(self, root): # 后序遍历 :左右根 if root == None: return self.back(root.left) self.back(root.right) print(root.item) if __name__ == "__main__": tree = Tree() tree.append(1) tree.append(2) tree.append(3) tree.append(4) tree.append(5) tree.append(6) tree.append(7) # tree.travel() # tree.forward(tree.root) # tree.middle(tree.root) tree.back(tree.root)
相关文章
- OushuDB 高速互联网络
- FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
- FastAPI(八十三)实战开发《在线课程学习系统》--登陆接口测试
- FastAPI(八十四)实战开发《在线课程学习系统》--个人信息接口测试
- FastAPI(八十五)实战开发《在线课程学习系统》--修改密码接口测试
- Xcode真机调试遇到The identity used to sign the executable is no longer valid
- MySQL Aborted告警案例分析
- iOS获取设备UUID
- 经过一个月的探索,我如何将 AST 操作得跟呼吸一样自然
- iOS动画弹出式按钮
- 怎样升级spyder
- 解决提交到GitHub首页不显示的问题
- iOS获取屏幕宽高、设备型号、系统版本信息介绍1、获取屏幕的宽高2、获取设备的型号3、获取系统版本
- 怎么重新清空spyder里的代码
- Science重磅:AlphaFold2从830万蛋白质中挑出了700种「复合物」
- 怎么中止正在运行的spyder
- CV大神何恺明最新一作:视觉预训练新范式MAE!下一个CV大模型要来?
- 怎么在spyder中新建项目
- Xcode 6之后创建PCH文件引创建PCH文件
- iOS截取字符串(NSString)1、截取某个下标之前的字符串,结果不包含下标对应的字符2、截取某个下标之后的字符串,结果包含下标对应的字符3、截取一段字符串