Programming Project 6.55
Programming Project 6.55
import queue
class LinkedBinaryTree:
class _Node:
__slots__ = '_el', '_l', '_r'
def __init__(self):
self._root = None
self._size = 0
def __len__(self):
return self._size
def height(self):
return self._height(self._root)
def breadth_first(self):
q = queue.Queue()
q.put(self._root)
while not q.empty():
p = q.get()
if p:
print(p._el)
if p._l:
q.put(p._l)
if p._r:
q.put(p._r)
def bst_insert(self, key):
if self._root is None:
self._root = self._Node(key)
else:
self._bst_insert(self._root, key)
self._size += 1
def print_in_order(self):
# Your code here
pass
if __name__ == "__main__":
tree = LinkedBinaryTree()
for value in [7, 3, 2, 5, 6, 9, 1, 4, 8, 10]:
tree.bst_insert(value)
print("In-order traversal:")
tree.print_in_order()