基于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 相关文章推荐
python实现通过pil模块对图片格式进行转换的方法
Mar 24 Python
Python中的模块导入和读取键盘输入的方法
Oct 16 Python
Python自动发邮件脚本
Mar 31 Python
Pycharm学习教程(2) 代码风格
May 02 Python
Python爬虫框架Scrapy常用命令总结
Jul 26 Python
python3.6下Numpy库下载与安装图文教程
Apr 02 Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 Python
python中with用法讲解
Feb 07 Python
Python如何使用27行代码绘制星星图
Jul 20 Python
python学习笔记之多进程
Aug 06 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
May 21 Python
Python制作表白爱心合集
Jan 22 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面向对象全攻略 (十五) 多态的应用
2009/09/30 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
php判断表是否存在的方法
2015/06/18 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
2018/12/25 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
js移除事件 js绑定事件实例应用
2012/11/28 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
JQuery中使用on方法绑定hover事件实例
2014/12/09 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
2019/06/18 jQuery
vue实现淘宝购物车功能
2020/04/20 Javascript
vue element ui validate 主动触发错误提示操作
2020/09/21 Javascript
python绘图库Matplotlib的安装
2014/07/03 Python
python字符串替换的2种方法
2014/11/30 Python
Python中用sleep()方法操作时间的教程
2015/05/22 Python
Python进阶-函数默认参数(详解)
2017/05/18 Python
Python实现嵌套列表去重方法示例
2017/12/28 Python
kafka-python 获取topic lag值方式
2019/12/23 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
Keras实现DenseNet结构操作
2020/07/06 Python
html5中地理位置定位api接口开发应用小结
2013/01/04 HTML / CSS
HTML5 Canvas中绘制矩形实例
2015/01/01 HTML / CSS
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
股指期货心得体会
2014/09/13 职场文书
合作合同协议书
2016/03/21 职场文书
python的netCDF4批量处理NC格式文件的操作方法
2022/03/21 Python