def levelOrderTraversal(self): queue = Queue() queue.enQueue(self.root) while not queue.isEmpty(): node = queue.deQueue() if node.left is not None: queue.enQueue(node.left) if node.right is not None: queue.enQueue(node.right) print(node.data, end = ", ") print()
def get_node_of_each_depth_in_linked_list(binaryTree: BinaryTree): aux_queue = Queue() aux_queue.enQueue(binaryTree.root) # insert root node in Queue First. lst = [] lst.append([]) aux_queue.enQueue(None) # Here None is my delimitor. while not aux_queue.isEmpty(): node = aux_queue.deQueue() if node is None: if not aux_queue.isEmpty(): aux_queue.enQueue(None) lst.append([]) continue lst[len(lst) - 1].append(node.data) if node.left is not None: aux_queue.enQueue(node.left) if node.right is not None: aux_queue.enQueue(node.right) return lst
def insertKey(self, ele): if self.root is None: self.root = BinaryTreeNode() self.root.data = ele else: queue = Queue() queue.enQueue(self.root) while not queue.isEmpty(): node = queue.deQueue() if node.left is None: node.left = BinaryTreeNode() node.left.data = ele break else: queue.enQueue(node.left) if node.right is None: node.right = BinaryTreeNode() node.right.data = ele break else: queue.enQueue(node.right)