Exemplo n.º 1
0
        private static void TestHeapTree(int[] myArray)
        {
            Console.WriteLine("\n======== H-E-A-P-T-R-E-E ==================" +
                              "\n======== Complexity: Time O(n) Espace O(1)\nSteps:\n");

            StringBuilder result = new StringBuilder("Inserting keys ");

            HeapTree <int, int> tree = new HeapTree <int, int>(myArray.Length);
            Random rnd = new Random();

            for (int i = 0; i < myArray.Length; i++)
            {
                tree.Insert(myArray[i], rnd.Next(1, myArray.Length * 100));
                result.Append(myArray[i] + " ");
                Console.WriteLine("Insert time: " + tree.HeapLog.ToString());
            }

            result.Append("\nMy heap result: ");
            for (int i = 0; i < myArray.Length; i++)
            {
                result.Append(tree.Heap[i].Key + " ");
            }

            Console.WriteLine("\n" + result);

            Console.WriteLine("\nIn Order:\n" + tree.InOrder());
            Console.WriteLine("\nPos Order:\n" + tree.PosOrder());
            Console.WriteLine("\nPre Order:\n" + tree.PreOrder());

            result.Clear();
            for (int i = 0; i < myArray.Length; i++)
            {
                result.Append(tree.Remove().Key + " ");
            }
            Console.WriteLine("\nRemoved nodes:" + result + "\n");
        }