python(五)二叉树
来源:互联网 发布:asap2020软件 64bit 编辑:程序博客网 时间:2024/06/11 00:07
# coding:utf-8import randomclass Node(object): def __init__(self, item): self.elem = item self.lchild = None self.rchild = Noneclass Tree(object): def __init__(self): self.root = None def add(self, item): node = Node(item) if self.root is None: self.root = node return queue = [self.root] while queue: cur_node = queue.pop(0) if cur_node.lchild is None: cur_node.lchild = node return else: queue.append(cur_node.lchild) if cur_node.rchild is None: cur_node.rchild = node return else: queue.append(cur_node.rchild) def breadth_travel(self): if self.root is None: return queue = [self.root] while queue: cur_node = queue.pop(0) print(cur_node.elem, end=" ") if cur_node.lchild is not None: queue.append(cur_node.lchild) if cur_node.rchild is not None: queue.append(cur_node.rchild) def preorder(self, node): if node is None: return print(node.elem, end=" ") self.preorder(node.lchild) self.preorder(node.rchild) def inorder(self, node): if node is None: return self.inorder(node.lchild) print(node.elem, end=" ") self.inorder(node.rchild) def postorder(self, node): if node is None: return self.postorder(node.lchild) self.postorder(node.rchild) print(node.elem, end=" ")if __name__ == "__main__": seq = list(range(1, 100)) li = random.sample(seq, 20) tree = Tree() for j in range(0, 10): tree.add(random.choice(li)) print("广度遍历") tree.breadth_travel() print("") print("先序遍历") tree.preorder(tree.root) print("") print("中序遍历") tree.inorder(tree.root) print("") print("后序遍历") tree.postorder(tree.root) print("")
阅读全文
0 0
- python(五)二叉树
- 二叉查找树(五)
- 二叉树整理(五)
- java 二叉树(五)查找二叉树中的节点
- 数据结构(五)之二叉查找树
- 面试算法(五)重建二叉树
- 数据结构 五:二叉树(Binary Tree)
- Java与数据结构(五) 二叉树
- 五:二叉树输出
- 实验五 二叉树
- 数据结构学习五:二叉树
- 【数据结构实验五】二叉树
- 作业五 二叉树II
- 算法基础(五):二叉树(基础)
- 数据结构学习笔记(五)二叉树及其C++实现
- 数据库实验(五):二叉树的顺序存储
- 数据结构之查找(五)——二叉查找树
- Python 二叉树练习
- Principal Component Analysis (PCA)主成分分析
- ucos-iii学习之时间管理
- 设计模式读书笔记-----模板方法模式
- 300.29 学生成绩管理系统
- IO操作——字符流
- python(五)二叉树
- Mybatis-03-配置文件及Mybatis主要API详解
- rapidjson串组装的代码示例
- 实现自己的仿真小车移动
- Android文本输入框EditText属性和方法说明
- 软考学习-二进制转化
- c++ primer第10章
- Spring知识整理【二】Spring 环境搭建
- 混合编程--fortran调用C++采用ODBC形式连接MYSQL数据库