写在最前面:
带你从最简单的二叉树构造开始,深入理解二叉树的数据结构,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二叉树的构造和打印例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
我一直在尝试从Node切换到Java,我想知道的一件事是如何以类似于Node显示的格式打印对象,例如二叉树。例如,我的二叉树初始化代码如下: 在节点中,此二叉树将显示如下: 然而在Java,当我做system.out.println(树); 输出->BinaryTree@4554617c 什么是打印我的BinaryTree的正确方法?什么是好方法?有没有一种方法可以用JSON格式打印树?
问题内容: 我想以以下方式打印我的二叉树: 我已经编写了用于插入节点的代码,但是无法编写用于打印树的代码。所以请帮忙。我的代码是: 问题答案: 您正在寻找的是广度优先遍历,它使您可以逐级遍历树。基本上,您使用队列来跟踪需要访问的节点,并在运行时将孩子添加到队列的 后面 (而不是将它们添加到堆栈的 前面 )。首先开始工作。 完成此操作后,您可以找出树具有()的级别,并使用该级别来估计空白。如果要使空
本文向大家介绍PHP构造二叉树算法示例,包括了PHP构造二叉树算法示例的使用技巧和注意事项,需要的朋友参考一下 树(Tree)在数据结构还是很重要的,这里表示二叉树用括号表示法表示。先写一个二叉树节点类: 然后构造二叉树: 这里写上一个打印二叉树的函数(中序遍历): 运行结果: 输入一个字符串 "A(B(C,D),G(F))" 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐
问题内容: 我正在构造一个二叉树。让我知道这是否是正确的方法。如果没有,请告诉我怎么做?我在构建通用二进制树的代码已找到的地方找不到合适的链接。BST的每个地方都已编码。 这是我要制作的二叉树。我应该能够进行所有的树遍历。 问题答案: 我认为这是您要寻找的:
下面是一个二叉查找树,它有一个根节点、一个左节点和一个右节点。代码有效,但我想显示这个二叉查找树,这样我就可以看到图层中的每个节点…这是代码…
问题内容: 如何在Java中打印二进制树,使输出类似于: 我的节点: 问题答案: 我已经创建了简单的二叉树打印机。你可以根据需要使用和修改它,但是仍然没有对其进行优化。我认为很多事情可以在这里得到改善;) 输出1: 输出2: