示例#1
0
 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()
示例#2
0
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
示例#3
0
    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)