基于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设计】。

相关文章

Python实现计算两个时间之间相差天数的方法

本文实例讲述了Python实现计算两个时间之间相差天数的方法。分享给大家供大家参考,具体如下: #-*- encoding:UTF-8 -*- from datetime impor...

python/sympy求解矩阵方程的方法

python/sympy求解矩阵方程的方法

sympy版本:1.2 假设求解矩阵方程 AX=A+2X 其中 求解之前对矩阵方程化简为 (A−2E)X=A 令 B=(A−2E) 使用qtconsole输入下...

selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)

selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)

使用WebDriver在Chrome浏览器上进行测试时,需要从http://chromedriver.storage.googleapis.com/index.html网址中下载与本机c...

Python实现通讯录功能

说实话,第一次写这么长的Python代码,期间遇到了很多问题,但是,最终还是完成了,花了我一天半的时间。 该程序实现了用户的增,删,改,查,主要用到sqlite3模块。对于该模块的知识点...

python获取array中指定元素的示例

对于array,如2-D的array,如何取指定元素 设array为3*10的shape s = array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9],...