基于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二分法搜索算法实例分析
May 11 Python
使用Python发送各种形式的邮件的方法汇总
Nov 09 Python
Python提取支付宝和微信支付二维码的示例代码
Feb 15 Python
python 多线程重启方法
Feb 18 Python
python下PyGame的下载与安装过程及遇到问题
Aug 04 Python
Python基于pygame实现单机版五子棋对战
Dec 26 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
Jan 16 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
为什么是 Python -m
Jun 19 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
Dec 17 Python
浅谈哪个Python库才最适合做数据可视化
Jun 28 Python
Python中的socket网络模块介绍
Jul 23 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&mysql(五)
2006/10/09 PHP
隐藏你的.php文件的实现方法
2007/03/19 PHP
PHP开发中常用的8个小技巧
2008/08/27 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
JavaScript 给汉字排序实例代码
2008/06/28 Javascript
javascript 流畅动画实现原理
2009/09/08 Javascript
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
仿微博字符限制效果实现代码
2012/04/20 Javascript
JavaScript mapreduce工作原理简析
2012/11/25 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
2017/02/22 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
Vue 组件修改根实例的数据的方法
2019/04/02 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
Python中用Descriptor实现类级属性(Property)详解
2014/09/18 Python
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
Python中请不要再用re.compile了
2019/06/30 Python
如何利用Python 进行边缘检测
2020/10/14 Python
Python偏函数实现原理及应用
2020/11/20 Python
如何提高SQL Server的安全性
2016/07/25 面试题
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
暑期家教宣传单
2015/07/14 职场文书
2019年工作总结范文
2019/05/21 职场文书
Python数据分析之绘图和可视化详解
2021/06/02 Python
分享Python获取本机IP地址的几种方法
2022/03/17 Python