1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
class (object): """节点""" def __init__(self, value): self.value = value self.left = None self.right = None
def get_val(self): return self.value
class BinaryTree(object): """树""" def __init__(self): self.root = None
def add_node(self, node): if not self.root: self.root = node else: root = self.root while True: if root.value >= node.value: if root.left: root = root.left continue else: root.left = node break else: if root.right: root = root.right else: root.right = node break
def mid_traverse(tree): """中序遍历""" if not tree: return mid_traverse(tree.left) print(tree.value) mid_traverse(tree.right)
if __name__ == '__main__': n1 = Node(5) n2 = Node(4) n3 = Node(6) n4 = Node(3) n5 = Node(7) n6 = Node(2) n7 = Node(8)
tree = BinaryTree() for i in [n1, n2, n3, n4, n5, n7, n6]: tree.add_node(i)
mid_traverse(tree.root)
|
近期评论