二叉树中的排序树,Python版
来源:互联网 发布:java九九乘法表上三角 编辑:程序博客网 时间:2024/06/14 21:13
二叉排序树
定义:二叉排序树的查找过程是,通过采取二叉链表作为二叉排序树的存储结构。一个无序的数列,可以通过二叉树
中的排序树变成一个有序数列。
中序特点:所有节点都是左小右大
class mybtree:#创建一个类
class node:
def __init__(self):
self.data = None #给一个接收的值
self.left = None #左边的值
self.right = None #右边的值
def add(self,n):
if self.data > n.data: #self.data代表第一个值,n.data代表第二个值,当第一个值大于第二个值,走if
if self.left is None: #第一个值的左边为空时,走if
self.left = n
else:
self.left.add(n)
if self.data < n.data: #self.data代表第一个值,n.data代表第二个值,当第一个值小于第二个值,走if
if self.right is None: #第一个值的右边为空时,走if
self.right = n
else:
self.right.add(n)
def zhong(self): #中序
if self.left is not None: #左边的值为空时,走if
self.left.zhong()
print(self.data) #输出
if self.right is not None: #右边的值为空时,走if
self.right.zhong()
def __init__(self):
self.root = None
def add(self,data):
n = self.node()
n.data = data
if self.root is None:
self.root = n
else:
self.root.add(n)
def zhong(self):
self.root.zhong()
t = mybtree() #调用方法
t.add(11)
t.add(7)
t.add(18)
t.add(5)
t.add(8)
t.add(24)
t.add(2)
t.add(3)
t.zhong()
输出结果是:
2
3
5
7
8
11
18
24
比较绕的地方加了注释,建议读者在阅读的时候,和我写的《二叉树中的排序树,java版》综合着看,对比学习比较好
- 二叉树中的排序树,Python版
- 二叉树中的排序树,Java版
- python实现二叉树排序
- 二叉树排序树中的查找路径
- 二叉树,排序二叉树
- 【Python排序搜索基本算法】之二叉树的遍历
- Python实现二叉树存储结构的堆排序
- Python实现: 常用排序算法 & 二叉树的遍历算法
- 排序算法-二叉树排序
- 树-排序二叉树
- 二叉树排序
- 排序二叉树
- 使用二叉树排序
- 排序二叉树 原理
- 二叉树排序法
- 二叉树排序
- java-二叉树排序
- 二叉排序(查找)树
- Java设计模式之——简单工厂模式(静态工厂模式)
- 第三周项目四(2) 奇数移动到偶数前面
- 安装jar包到本地maven仓库
- springboot
- 用自己的数据训练Faster-RCNN,tensorflow版本(一)
- 二叉树中的排序树,Python版
- 51nod 1019 逆序数
- springboot
- HDU 1867 A + B for you again 字符串拼接 kmp
- 拓展kmp&Exkmp
- 关于赋值问题
- springboot
- 版本更新、清理缓存
- 今天给大家做一个猜数字游戏的东西,,不仅能帮助大家更加了解angluar还能小小娱乐一下