def test_append(self): tree = BinaryTree(1) self.assertIsNone(tree.left) tree.append_node(2) self.assertEqual(tree.left.key, 2) tree.append_node(3) self.assertEqual(tree.right.key, 3) tree.append_node(2) list_ = [1, 2, 3] self.assertEqual([node.key for node in tree.breadth_first_traversal()], list_)
def main(args): # Create tree, add some nodes tree = BinaryTree("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L") # Traverse print([node.key for node in tree.breadth_first_traversal()]) print([node.key for node in tree.depth_first_traversal()]) # Find nodes print(tree.find_node("Z")) print(tree.find_node("E")) # Find ancestors print([node for node in tree.get_ancestors("K")]) print([node for node in tree.get_ancestors("L")]) # Find common ancestor first_node = tree.find_node("K") second_node = tree.find_node("L") print(tree.lowest_common_ancestor(first_node, second_node))
def test_bft(self): tree = BinaryTree(1, 2, 3, 4) list_ = [1, 2, 3, 4] self.assertEqual([node.key for node in tree.breadth_first_traversal()], list_)