基于python二叉树的构造和打印例子

yipeiwu_com7年前Python基础

写在最前面:

带你从最简单的二叉树构造开始,深入理解二叉树的数据结构,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设计】。

相关文章

简单的通用表达式求10乘阶示例

复制代码 代码如下:(lambda x: lambda n: x(x)(n))(lambda f: lambda n: 1 if n == 0 else n*f(f)(n-1))(10)...

在Django中使用Sitemap的方法讲解

sitemap 是你服务器上的一个XML文件,它告诉搜索引擎你的页面的更新频率和某些页面相对于其它页面的重要性。 这个信息会帮助搜索引擎索引你的网站。 例如,这是 Django 网站(h...

python 回调函数和回调方法的实现分析

回调与事件驱动 回调函数有比较重要的意义:它在是事件驱动的体现 我们试想一个场景,如果我们触发了某个事件,比如点击事件 那么只要给这个点击事件绑定一个或多个处理事件,也就是回调函数 我们...

Python 实现大整数乘法算法的示例代码

我们平时接触的长乘法,按位相乘,是一种时间复杂度为 O(n ^ 2) 的算法。今天,我们来介绍一种时间复杂度为 O (n ^ log 3) 的大整数乘法(log 表示以 2 为底的对数)...

pygame游戏之旅 python和pygame安装教程

pygame游戏之旅 python和pygame安装教程

简介: Pygame是跨平台Python模块,专为电子游戏设计,包含图像、声音。建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚。 建立在SDL基础上...