基于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中的文件和目录操作实现代码
Mar 13 Python
python类型强制转换long to int的代码
Feb 10 Python
python持久性管理pickle模块详细介绍
Feb 18 Python
Python脚本在Appium库上对移动应用实现自动化测试
Apr 17 Python
微信跳一跳python自动代码解读1.0
Jan 12 Python
Python 将pdf转成图片的方法
Apr 23 Python
使用pandas对两个dataframe进行join的实例
Jun 08 Python
django 环境变量配置过程详解
Aug 06 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
Oct 11 Python
python socket通信编程实现文件上传代码实例
Dec 14 Python
django前端页面下拉选择框默认值设置方式
Aug 09 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
Jan 11 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 快速排序算法详解
2014/11/10 PHP
php实现httpRequest的方法
2015/03/13 PHP
javascript遇到html5的一些表单属性
2015/07/05 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
Move.js入门
2017/02/08 Javascript
react.js 获取真实的DOM节点实例(必看)
2017/04/17 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
使用JavaScript计算前一天和后一天的思路详解
2019/12/20 Javascript
vue.js 解决v-model让select默认选中不生效的问题
2020/07/28 Javascript
python连接mysql并提交mysql事务示例
2014/03/05 Python
Python中的Numeric包和Numarray包使用教程
2015/04/13 Python
python3中int(整型)的使用教程
2017/03/23 Python
Python实现将照片变成卡通图片的方法【基于opencv】
2018/01/17 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
Python新手学习标准库模块命名
2020/05/29 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
html5 横向滑动导航栏的方法示例
2020/05/08 HTML / CSS
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
优秀教师主要事迹
2014/02/01 职场文书
办公室综合文员岗位职责范本
2014/02/13 职场文书
专业技术职务聘任书
2014/03/29 职场文书
关于热爱祖国的演讲稿
2014/05/04 职场文书
大学生应聘导游自荐信
2014/06/02 职场文书
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
打架赔偿协议书范本
2014/10/26 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
python识别围棋定位棋盘位置
2021/07/26 Python
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫