首页 > 解决方案 > 遍历中序如何打印值?

问题描述

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 语句,但是打印了值。它是怎么做的?谁能用简单的英语解释一下吗?

标签: pythontreebinary-treetraversalinorder

解决方案


推荐阅读