基于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在命令行下使用google翻译(带语音)
Jan 16 Python
Python常用模块用法分析
Sep 08 Python
Python基类函数的重载与调用实例分析
Jan 12 Python
详解字典树Trie结构及其Python代码实现
Jun 03 Python
Python基础语言学习笔记总结(精华)
Nov 14 Python
解决python中画图时x,y轴名称出现中文乱码的问题
Jan 29 Python
浅析python的Lambda表达式
Feb 27 Python
详解Python文件修改的两种方式
Aug 22 Python
python datetime中strptime用法详解
Aug 29 Python
python实现移动木板小游戏
Oct 09 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
Jan 06 Python
python 如何获取页面所有a标签下href的值
May 06 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
jQuery EasyUI API 中文文档 - DateBox日期框
2011/10/15 PHP
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
php编写简单的文章发布程序
2015/06/18 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
php支付宝APP支付功能
2020/07/29 PHP
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
jQuery中noconflict函数的实现原理分解
2015/02/03 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
JavaScript文档碎片操作实例分析
2015/12/12 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
JavaScript编写一个简易购物车功能
2016/09/17 Javascript
AngularJS入门教程之模块化操作用法示例
2016/11/02 Javascript
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
php中and 和 &&出坑指南
2018/07/13 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
如何基于JS截获动态代码
2019/12/25 Javascript
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
Python简单计算文件夹大小的方法
2015/07/14 Python
python制作一个桌面便签软件
2015/08/09 Python
python判断输入日期为第几天的实例
2018/11/13 Python
python基于gevent实现并发下载器代码实例
2019/11/01 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
银行实习人员自我鉴定
2013/09/22 职场文书
社会实践自我鉴定
2013/11/07 职场文书
总务岗位职责
2013/11/19 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
给老婆的保证书
2015/01/16 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
汽车车尾标语大全
2015/08/11 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
vue Element-ui表格实现树形结构表格
2021/06/07 Vue.js
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python