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()
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)