基于python二叉树的构造和打印例子


Posted in Python onAugust 09, 2019

写在最前面:

带你从最简单的二叉树构造开始,深入理解二叉树的数据结构,ps:不会数据结构的程序猿只能是三流的

首先,我们构造一个二叉树

这是最标准,也是最简单的二叉树构造方法

'''
树的构建:
   3
 9   20
   15  7
'''


class Tree():
  '树的实现'
  def __init__(self,data,left = 0,right = 0):
    self.left = left
    self.right = right
    self.data = data

  def __str__(self):
    return str(self.data)
# test tree


tree1 = Tree(data=15)
tree2 = Tree(data=7)
tree3 = Tree(20,tree1,tree2)
tree4 = Tree(data=9)
base = Tree(3,tree4,tree3)

这里我们需要定义二叉树的根,左右节点,然后构造节点之间的关系

打印二叉树函数

def function(root):
  A = []
  result = []
  if not root:
    return result
  A.append(root)
  while A:
    current_root = A.pop(0)
    result.append(current_root.data)
    if current_root.left:
      A.append(current_root.left)
    if current_root.right:
      A.append(current_root.right)
  print(result)
  return result

调用函数以及放入构造好的二叉树

function(base)

输出如下:

[3, 9, 20, 15, 7]

Process finished with exit code 0

最近事情实在是太多,真的是每天人都很累,还是坚持每天更新一点,已经快要强迫症了。

以上这篇基于python二叉树的构造和打印例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Cpy和Python的效率对比
Mar 20 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
Nov 01 Python
利用Python进行异常值分析实例代码
Dec 07 Python
Python之web模板应用
Dec 26 Python
初探TensorFLow从文件读取图片的四种方式
Feb 06 Python
对numpy中轴与维度的理解
Apr 18 Python
pytorch 调整某一维度数据顺序的方法
Dec 08 Python
使用Python制作表情包实现换脸功能
Jul 19 Python
使用pip安装python库的多种方式
Jul 31 Python
BeautifulSoup中find和find_all的使用详解
Dec 07 Python
python读取excel数据并且画图的实现示例
Feb 08 Python
Python3压缩和解压缩实现代码
Mar 01 Python
Python re 模块findall() 函数返回值展现方式解析
Aug 09 #Python
Django ORM 自定义 char 类型字段解析
Aug 09 #Python
解决使用export_graphviz可视化树报错的问题
Aug 09 #Python
Django中自定义admin Xadmin的实现代码
Aug 09 #Python
python输出决策树图形的例子
Aug 09 #Python
Python实现决策树并且使用Graphviz可视化的例子
Aug 09 #Python
Django ORM 常用字段与不常用字段汇总
Aug 09 #Python
You might like
php 调试利器debug_print_backtrace()
2012/07/23 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
2014/04/09 PHP
php密码生成类实例
2014/09/24 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
PHP crc32()函数讲解
2019/02/14 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
Egret引擎开发指南之运行项目
2014/09/03 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
2017/04/18 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
使用layui监听器监听select下拉框,事件绑定不成功的解决方法
2019/09/28 Javascript
ReactRouter的实现方法
2021/01/25 Javascript
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
python:print格式化输出到文件的实例
2018/05/14 Python
Python函数式编程指南:对生成器全面讲解
2019/11/19 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
pyecharts动态轨迹图的实现示例
2020/04/17 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
Bandier官网:奢侈、时尚前卫的健身服装首选目的地
2020/07/05 全球购物
建筑装饰学院室内设计专业个人自我评价
2013/12/07 职场文书
入党自荐书范文
2014/03/09 职场文书
期末评语大全
2014/05/04 职场文书
群众路线专项整治方案
2014/10/27 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
2014年煤矿安全工作总结
2014/12/04 职场文书
村官2015年度工作总结
2015/10/14 职场文书