Advertisement
Guest User

Untitled

a guest
Sep 12th, 2019
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. import Queue
  2. import pdb
  3.  
  4. class BinTree:
  5.  
  6. val = 0
  7. left = None
  8. right = None
  9.  
  10. def __init__(self,_val):
  11. self.val = _val
  12. self.left = None
  13. self.right = None
  14.  
  15. def createBTNode(val):
  16. return BinTree(val)
  17.  
  18.  
  19.  
  20. def arr_to_btree(input_array):
  21.  
  22. i = 0
  23. root = createBTNode(input_array[0])
  24. node_queue = Queue.Queue(maxsize=100)
  25. node_queue.put(root)
  26.  
  27. while not node_queue.empty():
  28. new_tree = node_queue.get()
  29.  
  30. if 2*i+1 >= len(input_array):
  31. break
  32.  
  33. left_node = createBTNode(input_array[2*i+1])
  34. new_tree.left = left_node
  35. node_queue.put(left_node)
  36.  
  37. if 2*i+2 >= len(input_array) or input_array[2*i+1] is None:
  38. break
  39. right_node = createBTNode(input_array[2*i+2])
  40. new_tree.right = right_node
  41.  
  42. if input_array[2*i+2] is not None:
  43. node_queue.put(right_node)
  44. i+=1
  45. return root
  46.  
  47.  
  48.  
  49. def print_tree(root):
  50. if root is not None:
  51. print(root.val)
  52. print_tree(root.left)
  53. print_tree(root.right)
  54.  
  55.  
  56. def main():
  57. arr = [2,3,6,None,8,2,3,3,1]
  58. pdb.set_trace()
  59. root = arr_to_btree(arr)
  60. print_tree(root)
  61.  
  62.  
  63. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement