|
发表于 2018-10-20 10:22:15
|
显示全部楼层
不是很正规,现在才调出来,跟老师说你没有基础吧- # Randomly generates a binary search tree with values from 0 up to 9, and displays it growing up.
- import sys
- from random import seed, choice
- from binary_tree_adt import *
- def print_growing_up(tree):
- h = tree.height()
- def printTree(tree, n, lvl, i):
- if n > lvl:
- return
- if tree.value == None:
- print(" "*(2**(h-n+1) - 1), end = ' ')
- else:
- printTree(tree.left_node, n+1, lvl, i)
- printTree(tree.right_node, n+1, lvl, i)
- if n == lvl:
- print(tree.value, end = ' '*(2**(i+1) - 1))
- for i in range(h+1):
- print(' ' * (2**i - 1) , end = '')
- printTree(tree, 0, h-i, i)
- print()
- try:
- seed_arg, nb_of_nodes = (int(x) for x in
- input('Enter two integers, with the second one between 0 and 10: '
- ).split()
- )
- if nb_of_nodes < 0 or nb_of_nodes > 10:
- raise ValueError
- except ValueError:
- print('Incorrect input, giving up.')
- sys.exit()
- ##seed_arg = 0
- ##nb_of_nodes = 10
- seed(seed_arg)
- data_pool = list(range(nb_of_nodes))
- tree = BinaryTree()
- for _ in range(nb_of_nodes):
- datum = choice(data_pool)
- tree.insert_in_bst(datum)
- data_pool.remove(datum)
- print_growing_up(tree)
复制代码 |
|