python - 遍历中序如何打印值?
问题描述
class node:
def __init__(self,val):
self.data = val
self.left = None
self.right = None
class Tree:
def create(self,data):
return node(data)
def insert(self,node,data):
if node is None:
return self.create(data)
if data < node.data:
node.left = self.insert(node.left, data)
else:
node.right = self.insert(node.right, data)
return node
def search(self,node,data):
if data == node.data or node is None:
return node
if node.data < data:
return self.search(node.right, data)
else:
return self.search(node.left, data)
[ <---
def traverseinorder(self,root):
if root is not None:
print(root.data)
self.traverseinorder(root.left)
self.traverseinorder(root.right)
--->]
def main():
root = None
tree = Tree()
root = tree.insert(root, 10)
print(root)
tree.insert(root, 20)
tree.insert(root, 30)
tree.insert(root, 40)
tree.insert(root, 70)
tree.insert(root, 60)
tree.insert(root, 80)
print("Traverse Inorder")
tree.traverseinorder(root)
我是python数据结构的新手。我不明白 traverseinorder 部分。我只打印 thr 根节点数据,但我没有在 self.traverseinorder(root.left) 和 self.traverseinorder(root.right) 中使用 print 或 return 语句,但是打印了值。它是怎么做的?谁能用简单的英语解释一下吗?