Python實現一個二叉樹
阿新 • • 發佈:2021-01-04
class BinaryTree(object): def __init__(self, node): self.val = node self.left = None self.right = None def insertleft(self, node): self.left = BinaryTree(node) return self.left def insertright(self, node): self.right = BinaryTree(node) return self.right def show(self): print(self.val, end = ' ') def preOrder(tree): if tree.val: tree.show() if tree.left: preOrder(tree.left) if tree.right: preOrder(tree.right) def inOrder(tree): if tree.val: if tree.left: inOrder(tree.left) tree.show() if tree.right: inOrder(tree.right) def postOrder(tree): if tree.val: if tree.left: postOrder(tree.left) if tree.right: postOrder(tree.right) tree.show() if __name__ == '__main__': tree = BinaryTree('Root') A = tree.insertleft('A') B = tree.insertright('B') C = A.insertleft('C') D = A.insertright('D') E = B.insertleft('E') F = B.insertright('F') G = C.insertleft('G') print('*************************') print('Binary Tree pre-traversal:') preOrder(tree) print('\n') print('*************************') print('Binary Tree mid-traversal:') inOrder(tree) print('\n') print('*************************') print('Binary Tree post-traversal:') postOrder(tree) print('\n')