基于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中的闭包实例详解
Aug 29 Python
pygame学习笔记(2):画点的三种方法和动画实例
Apr 15 Python
在Python中使用模块的教程
Apr 27 Python
Python内存管理方式和垃圾回收算法解析
Nov 11 Python
Django框架封装外部函数示例
May 28 Python
Python udp网络程序实现发送、接收数据功能示例
Dec 09 Python
tensorflow没有output结点,存储成pb文件的例子
Jan 04 Python
Python : turtle色彩控制实例详解
Jan 19 Python
Python tcp传输代码实例解析
Mar 18 Python
django 连接数据库出现1045错误的解决方式
May 14 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
Nov 02 Python
Django启动时找不到mysqlclient问题解决方案
Nov 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
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
2009/03/10 PHP
phpinfo 系统查看参数函数代码
2009/06/05 PHP
php生成图形验证码几种方法小结
2013/08/15 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
2016/06/29 PHP
Add a Picture to a Microsoft Word Document
2007/06/15 Javascript
js 操作select相关方法函数
2009/12/06 Javascript
Jquery AJAX 用于计算点击率(统计)
2010/06/30 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
2016/01/04 Javascript
javascript insertAfter()定义与用法示例
2016/07/25 Javascript
url传递的参数值中包含&时,url自动截断问题的解决方法
2016/08/02 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
Javascript实现倒计时时差效果
2017/05/18 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
vue通过数据过滤实现表格合并
2020/11/30 Javascript
原生js+canvas实现验证码
2020/11/29 Javascript
Python中音频处理库pydub的使用教程
2017/06/07 Python
使用python编写udp协议的ping程序方法
2018/04/22 Python
Windows下python3.6.4安装教程
2018/07/31 Python
Python hashlib模块实例使用详解
2019/12/24 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
python开发入门——set的使用
2020/09/03 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
python实现计算图形面积
2021/02/22 Python
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
技术副厂长岗位职责
2013/12/26 职场文书
网络工程专业自荐信范文
2014/03/16 职场文书
酒会开场白大全
2015/06/01 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
施工安全责任协议书
2016/03/23 职场文书
python flask框架快速入门
2021/05/14 Python
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS
Java 超详细讲解数据结构中的堆的应用
2022/04/02 Java/Android