Python数据结构与算法06——树与树算法
二叉树
class Node(object): def __init__(self,val,lchild=None,rchild=None): self.val=val self.lchild=lchild self.rchild=rchild class Tree(object): def __init__(self): self.root=None def add(self,item): node=Node(item) if self.root==None: self.root=node return queue=[self.root] while queue: cur_node=queue.pop(0) if cur_node.lchild==None: cur_node.lchild=node return else: queue.append(cur_node.lchild) if cur_node.rchild==None: cur_node.rchild=node return else: queue.append(cur_node.rchild) def breadth_travel(self): if self.root==None: print('NULL') return queue=[self.root] while queue: cur_node = queue.pop(0) print(cur_node.val, end=' ') if cur_node.lchild!=None: queue.append(cur_node.lchild) if cur_node.rchild!=None: queue.append(cur_node.rchild) def preorder_travel(self,node): if node==None: return print(node.val,end=' ') self.preorder_travel(node.lchild) self.preorder_travel(node.rchild) def inorder_travel(self,node): if node==None: return self.inorder_travel(node.lchild) print(node.val, end=' ') self.inorder_travel(node.rchild) def postorder_travel(self,node): if node==None: return self.postorder_travel(node.lchild) self.postorder_travel(node.rchild) print(node.val, end=' ') tree=Tree() tree.add(0) tree.add(1) tree.add(2) tree.add(3) tree.add(4) tree.add(5) tree.add(6) tree.add(7) tree.add(8) tree.add(9) tree.breadth_travel() print(' ') tree.preorder_travel(tree.root) print(' ') tree.inorder_travel(tree.root) print(' ') tree.postorder_travel(tree.root)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)