轉自 https://blog.csdn.net/weixin_42521211/article/details/88956908node
class Tree(object): def __init__(self, value): self.data = value self.left = None self.right = None def insertLeft(self, value_left): self.left = Tree(value_left) return self.left def insertRight(self, value_right): self.right = Tree(value_right) return self.right def show(self): print(self.data) # 先序 def preOrder(node): if node.data: node.show() if node.left: preOrder(node.left) if node.right: preOrder(node.right) # 中序 def midOrder(node): if node.data: if node.left: midOrder(node.left) node.show() if node.right: midOrder(node.right) # 後序 def botOrder(node): if node.data: if node.left: botOrder(node.left) if node.right: botOrder(node.right) node.show() if __name__ == '__main__': root = Tree("root") A = root.insertLeft('A') B = root.insertRight('B') C = A.insertLeft('C') D = A.insertRight('D') F = D.insertLeft('F') G = D.insertRight('G') E =B.insertRight('E') # preOrder(root) # midOrder(root) botOrder(root)