基于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读取json文件并将数据插入到mongodb的方法
Mar 23 Python
Python中使用PyQt把网页转换成PDF操作代码实例
Apr 23 Python
在Python的Flask中使用WTForms表单框架的基础教程
Jun 07 Python
基于Python Numpy的数组array和矩阵matrix详解
Apr 04 Python
python使用epoll实现服务端的方法
Oct 16 Python
六行python代码的爱心曲线详解
May 17 Python
对Python3中列表乘以某一个数的示例详解
Jul 20 Python
django和vue实现数据交互的方法
Aug 21 Python
python tkinter canvas使用实例
Nov 04 Python
Python基于pyecharts实现关联图绘制
Mar 27 Python
python 轮询执行某函数的2种方式
May 03 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 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 魔术变量和魔术函数详解
2015/02/25 PHP
php从数组中随机选择若干不重复元素的方法
2015/03/14 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
Laravel使用原生sql语句并调用的方法
2019/10/09 PHP
javascript数组的扩展实现代码集合
2008/06/01 Javascript
JQuery 选项卡效果(JS与HTML的分离)
2010/04/01 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
2013/04/26 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
JS表的模拟方法
2015/02/05 Javascript
javascript中this的四种用法
2015/05/11 Javascript
javascript 判断两个日期之差的示例代码
2015/09/05 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
vue el-table实现行内编辑功能
2019/12/11 Javascript
Python3基础之条件与循环控制实例解析
2014/08/13 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
2013/01/31 HTML / CSS
请问软件开发中的设计模式你会使用哪些
2015/05/13 面试题
护理专业自荐信范文
2014/02/26 职场文书
纠纷协议书
2014/04/16 职场文书
优秀毕业生自荐信
2014/06/10 职场文书
2016年校长新年寄语
2015/08/17 职场文书
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript
进行数据处理的6个 Python 代码块分享
2022/04/06 Python