def level_order(self, visit):
     linked_binary_tree.visit = visit
     aq = ArrayQueue()
     curr_node = self.root
     while curr_node:
         visit(curr_node)
         if curr_node.lc:
             aq.put(curr_node.lc)
         if curr_node.rc:
             aq.put(curr_node.rc)
         curr_node = aq.remove()
Esempio n. 2
0
 def breadth_first_search(self, v, reach, label):
     aq = ArrayQueue()
     reach[v] = label
     aq.put(v)
     while not aq.is_empty():
         w = aq.remove()
         p = self.adj_list[w].first_node
         while p:
             u = p.element.v
             if not reach[u]:
                 aq.put(u)
                 reach[u] = label
             p = p.next
     print(reach)