Пример #1
0
 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_)
Пример #2
0
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))
Пример #3
0
 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_)