Пример #1
0
        /// <summary>
        /// tests BinaryTree methods
        /// </summary>
        public static void TestBinTree()
        {
            Console.WriteLine("Test Binary Tree");
            BinaryTree tree = new BinaryTree();

            Console.WriteLine("Build tree...");
            tree = BuildBinTree(tree);
            Console.Write("Check 'PreOrder': ");
            PrintTreeValues(tree.PreOrder());
            Console.Write("Check 'InOrder': ");
            PrintTreeValues(tree.InOrder());
            Console.Write("Check 'PostOrder': ");
            PrintTreeValues(tree.PostOrder());
        }
        static void Main(string[] args)
        {
            List <string> treeList     = new List <string>();
            List <int>    bstList      = new List <int>();
            char          forwardSlash = '/';
            char          BackSlash    = '\\';

            PopulateBinaryTree();
            PopulateBinarySearchTree();

            Console.WriteLine("Tree Used in Demo:\n");
            Console.WriteLine("                 25");
            Console.WriteLine("                {0}  {1}", forwardSlash, BackSlash);
            Console.WriteLine("               {0}    {1}", forwardSlash, BackSlash);
            Console.WriteLine("              {0}      {1}", forwardSlash, BackSlash);
            Console.WriteLine("             {0}        {1}", forwardSlash, BackSlash);
            Console.WriteLine("            {0}          {1}", forwardSlash, BackSlash);
            Console.WriteLine("           {0}            {1}", forwardSlash, BackSlash);
            Console.WriteLine("          15             50");
            Console.WriteLine("         {0}  {1}           {2}  {3}", forwardSlash, BackSlash, forwardSlash, BackSlash);
            Console.WriteLine("        {0}    {1}         {2}    {3}", forwardSlash, BackSlash, forwardSlash, BackSlash);
            Console.WriteLine("      10      22     35      70");
            Console.WriteLine("      {0}{1}      {2}{3}     {4}{5}      {6}{7}", forwardSlash, BackSlash, forwardSlash, BackSlash, forwardSlash, BackSlash, forwardSlash, BackSlash);
            Console.WriteLine("     4  12  18  24 31  44  66  90\n\n");

            // This Section is for Pre-Order Traverse
            treeList = myTree.PreOrder(myTree.Root, treeList);
            Console.Write("Pre-Order Binary Tree:         ");

            foreach (string value in treeList)
            {
                Console.Write("{0} ", value);
            }

            Console.WriteLine();
            bstList = myBST.PreOrder(myBST.Root, bstList);
            Console.Write("Pre-Order Binary Search Tree:  ");

            foreach (int value in bstList)
            {
                Console.Write("{0} ", value);
            }



            // This Section is for In-Order Traverse
            Console.WriteLine("\n");
            treeList = new List <string>();
            treeList = myTree.InOrder(myTree.Root, treeList);
            Console.Write("In-Order Tree:                ");

            foreach (string value in treeList)
            {
                Console.Write("{0} ", value);
            }

            Console.WriteLine();
            bstList = myBST.InOrder(myBST.Root, new List <int>());
            Console.Write("In-Order Binary Search Tree:  ");

            foreach (int value in bstList)
            {
                Console.Write("{0} ", value);
            }



            // This section is for Post-Order Traverse
            Console.WriteLine("\n");
            treeList = new List <string>();
            treeList = myTree.PostOrder(myTree.Root, treeList);
            Console.Write("Post-Order Tree:                ");

            foreach (string value in treeList)
            {
                Console.Write("{0} ", value);
            }

            Console.WriteLine();
            bstList = myBST.PostOrder(myBST.Root, new List <int>());
            Console.Write("Post-Order Binary Search Tree:  ");

            foreach (int value in bstList)
            {
                Console.Write("{0} ", value);
            }



            // This section is for Breadth First Traverse
            Console.WriteLine("\n");
            treeList = new List <string>();
            treeList = myTree.BreadthFirst();
            Console.Write("Breadth-First Tree:                ");

            foreach (string value in treeList)
            {
                Console.Write("{0} ", value);
            }

            Console.WriteLine();
            bstList = myBST.BreadthFirst();
            Console.Write("Breadth First Binary Search Tree:  ");

            foreach (int value in bstList)
            {
                Console.Write("{0} ", value);
            }



            // This section Tests the BST Contains Method
            Console.WriteLine("\n");
            Console.WriteLine("BST contains 50:  {0}", myBST.Contains(50));
            Console.WriteLine("BST contains 90:  {0}", myBST.Contains(90));
            Console.WriteLine("BST contains 10:  {0}", myBST.Contains(10));
            Console.WriteLine("BST contains 99:  {0}", myBST.Contains(99));
            Console.WriteLine("BST contains 13:  {0}", myBST.Contains(13));
            Console.WriteLine("BST contains 45:  {0}", myBST.Contains(45));



            // This section Tests the BT Max Value Method
            Console.WriteLine("\n");
            Console.WriteLine("Max Value BT: {0}", myTree.FindMaximumValue());
            Console.WriteLine("Max Value BST: {0}", myBST.FindMaximumValue());
            Console.WriteLine("\n\n");
        }