Example #1
0
    static void Main()
    {
        binarySearchTree binaryTree = new binarySearchTree(5);

        binaryTree.Add(4);
        binaryTree.Add(24);
        binaryTree.Add(72);
        binaryTree.Add(12);
        binaryTree.Add(-4);
        binaryTree.Add(8);
        binaryTree.Add(5);
        binaryTree.Add(7);
        binaryTree.Add(10);
        binaryTree.Add(24);

        System.Console.WriteLine("In Order Traversal");
        Console.WriteLine(binaryTree.traverseInOrder());
        Debug.Assert(binaryTree.traverseInOrder() == "-4 4 5 5 7 8 10 12 24 24 72 ");
        System.Console.WriteLine();

        System.Console.WriteLine("Pre Order Traversal");
        Console.WriteLine(binaryTree.traversePreOrder());
        Debug.Assert(binaryTree.traversePreOrder() == "5 4 -4 5 24 12 8 7 10 24 72 ");
        System.Console.WriteLine();

        System.Console.WriteLine("Post Order Traversal");
        Console.WriteLine(binaryTree.traversePostOrder());
        Debug.Assert(binaryTree.traversePostOrder() == "-4 5 4 7 10 8 24 12 72 24 5 ");
        System.Console.WriteLine();

        System.Console.WriteLine("binaryTree contains value 7: ");
        Debug.Assert(binaryTree.Contains(7) == true);
        System.Console.WriteLine();

        System.Console.WriteLine("binaryTree contains value 30: ");
        Debug.Assert(binaryTree.Contains(30) == false);
        System.Console.WriteLine();

        ExpressionParser expressionParser = new ExpressionParser();
        ExpressionTree   expressionTree   = new ExpressionTree(expressionParser.BuildTree("5 + 2 * 8 - 6 / 4"));

        System.Console.WriteLine("Expression Parser In Order Traversal");
        Console.WriteLine(expressionTree.traverseInOrder());
        Debug.Assert(expressionTree.traverseInOrder() == "5 + 2 * 8 - 6 / 4 ");
        System.Console.WriteLine();

        System.Console.WriteLine("Expression Parser Pre Order Traversal");
        Console.WriteLine(expressionTree.traversePreOrder());
        Debug.Assert(expressionTree.traversePreOrder() == "- + 5 * 2 8 / 6 4 ");
        System.Console.WriteLine();

        System.Console.WriteLine("Expression Parser Post Order Traversal");
        Console.WriteLine(expressionTree.traversePostOrder());
        Debug.Assert(expressionTree.traversePostOrder() == "5 2 8 * + 6 4 / - ");
        System.Console.WriteLine();

        Console.WriteLine("Expression Tree Evaluated");
        Console.WriteLine(expressionTree.EvaluateRecursive());
        Debug.Assert(expressionTree.EvaluateRecursive() == (5 + 2 * 8 - 6 / 4));
        Console.WriteLine();

        ///               binaryTree
        ///                    5
        ///                  /   \
        ///                 /     \
        ///                4      24
        ///               / \    /  \
        ///             -4   5  12   72
        ///                    /  \
        ///                   8   20
        ///                  / \ 
        ///                 7  10
    }