python实现二叉树,以及二叉树的遍历
来源:互联网 发布:php代码模板 编辑:程序博客网 时间:2024/06/05 15:44
二叉树Python实现
此二叉树我们用列表来表示它的节点
例如:
a[2,None,None],它表示的是根节点为2,没有子节点,a[0]为根节点,a[1]为左子节点,a[2]为右子节点。
数据结构介绍完,然后进行构造二叉树
#build binary tree function#二叉树实现#构建二叉树def Bintree(data,left=None,right=None):return [data,left,right]#判断二叉树是否为空树,返回的是一个布尔值def is_empty_Bintree(btree):return btree is None#返回树的根def root(btree):return btree[0]def left(btree):return btree[1]def right(btree):return btree[2]#插入一个根节点def set_root(btree,data):btree[0] =datadef set_left(btree,left):btree[1]=leftdef set_right(btree,right):btree[2]=right
构造树的函数已经完成,下面是树的构造
t=Bintree(2, Bintree(4), Bintree(8))
print(t)
输出结果为:
[2, [4, None, None], [8, None, None]]
此二叉树为:
下面构造一棵复杂的二叉树:
set_left(left(t),Bintree(5))
set_right(left(t),Bintree(6))
set_left(left(left(t)),Bintree(9))
print(t)
输出为:
[2, [4, [5, [9, None, None], None], [6, None, None]], [8, None, None]]
此树为:
接下来进行二叉树的遍历
(下面用的递归实现的二叉树遍历)
1、先序遍历(先根节点,再左节点,后右节点)
代码实现:
def Through(tree):if((is_empty_Bintree(tree))==False):a=root(tree)if a==None:passelse:print(a)Through(left(tree))Through(right(tree))return None# Through(right(tree))Through(t)
遍历的顺序为:
245968
2、中序遍历(先左节点,再根节点,后右节点)
#中序遍历
def Through(tree):if((is_empty_Bintree(tree))==False):Through(left(tree))a=root(tree)if a==None:passelse:print(a)Through(right(tree))return None# Through(right(tree))Through(t)
遍历的顺序为:954628
3、后序遍历(先左节点,再右节点,后根节点)
def Through(tree):if((is_empty_Bintree(tree))==False):Through(left(tree))Through(right(tree))a=root(tree)if a==None:passelse:print(a)return None# Through(right(tree))Through(t)
到此就结束了
希望对你有所帮助
阅读全文
1 0
- python实现二叉树,以及二叉树的遍历
- 二叉树的遍历以及重建(Python实现)
- 「数据结构」二叉树的遍历以及Python实现
- python实现二叉树以及二叉树的遍历--1(面向对象的方法实现)
- python实现二叉树以及二叉树的遍历--1(函数实现)
- Java 二叉树的实现以及遍历
- 二叉树的遍历(python实现)
- 二叉树递归遍历的python实现
- 二叉树与遍历的Python实现
- python实现二叉树的遍历
- python实现二叉树的遍历
- python实现二叉树遍历
- 《面试》---Python 实现二叉树结构以及相关遍历
- 二叉树的实现以及递归遍历的精确模拟
- 二叉树遍历的实现
- 二叉树的遍历实现
- Python 遍历二叉树
- java实现二叉树的创建以及遍历
- 同一个应用程序两个实例通过共享段共享数据
- 自定义锁屏的实现
- bzoj 3894(最小割)
- Chrome: 完全移除对WoSign和StartCom证书的信任
- 代码管理工具git的使用
- python实现二叉树,以及二叉树的遍历
- 数据结构:二叉树
- POJ 3261 浅谈后缀数组HEIGHT数组的实际应用
- iOS-截取字符串中两个指定字符串中间的字符串
- 三分钟学会用SpringMVC搭建最小系统(超详细)
- Spring整合MQTT
- Android之FFmpeg(2)--FFmpeg结构总览及函数基本使用
- 广搜加优先队列 题目:Rescue
- 算法学习笔记 二叉树和图遍历—深搜 DFS 与广搜 BFS