Python 如何迭代并打印二叉树?
我用python编写了一个二叉树结构。我可以为每个节点输入数据,但一旦插入过程结束(如Java12),就无法迭代数据并以树格式打印Python 如何迭代并打印二叉树?,python,binary-tree,Python,Binary Tree,我用python编写了一个二叉树结构。我可以为每个节点输入数据,但一旦插入过程结束(如Java12),就无法迭代数据并以树格式打印 class Tree: def __init__(self, data): self.data = data self.left = None self.right = None def Insert(i, p): if i == 4: return else:
class Tree:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
def Insert(i, p):
if i == 4:
return
else:
p.left = Tree(input("Enter Value for left node\n"))
p.right = Tree(input("Enter Value for right node\n"))
Insert(i+1, p.left, )
Insert(i+1, p.right, )
root = Tree(1)
Insert(0, root)
print(root)
当我打印根目录时,我会得到它在内存中的位置(类似于:
)
是否可以打印每个节点的所有值?按顺序打印树的算法实际上非常简单。这与您当前正在进行的插入操作几乎相同。下面是一个按顺序遍历的示例(顺序的区别在于print(root.data)
是在对其子级的递归调用之前(preorder)、之间(按顺序)还是之后(post order))
def Print_Tree(root):
if root is None:
return
Print_Tree(root.left)
print(root.data)
Print_Tree(root.right)