private void BuildHeapTree(Node <T, G>[] myInput) { Tree = new HeapTree <T, G>(myInput.Length); for (int i = 0; i < myInput.Length; i++) { Tree.Insert(myInput[i].Key, myInput[i].Value); } }
public void Insert() { var heapTree = new HeapTree(); heapTree.Insert(55); int index = heapTree.Search(55); Assert.AreEqual(1, index); }
public void Empty() { HeapTree <int> tree = new HeapTree <int>(5); Assert.True(tree.IsEmpty()); tree.Insert(5); Assert.False(tree.IsEmpty()); }
public void Insert() { HeapTree <int> tree = new HeapTree <int>(10); int[] expected = { 1, 3, 2, 6, 4, 5, 0, 0, 0, 0 }; for (int i = 6; i > 0; i--) { tree.Insert(i); } Assert.Equal(expected, tree.GetTree()); }
public void Delete() { var heapTree = new HeapTree(); heapTree.Insert(5); heapTree.Insert(6); heapTree.Insert(15); heapTree.Insert(7); heapTree.Insert(12); heapTree.Insert(9); heapTree.Insert(2); heapTree.Insert(54); heapTree.Insert(59); heapTree.Display(); heapTree.DeleteRoot(); heapTree.Display(); int index = heapTree.Search(54); Assert.AreEqual(1, index); }
public void Pop() { HeapTree <int> tree = new HeapTree <int>(10); int[] expected = { 2, 3, 5, 6, 4, 0, 0, 0, 0, 0 }; for (int i = 6; i > 0; i--) { tree.Insert(i); } int temp = tree.Pop(); Assert.Equal(1, temp); Assert.Equal(expected, tree.GetTree()); }
public void HeapTree_Insert_AtMiddle() { var heapTree = new HeapTree(); var list = new List <int>() { 2, 4, 6 }; var tree = heapTree.CreateTree(list).Result; Assert.AreEqual(6, tree.Data); Assert.AreEqual(4, tree.LeftNode.Data); Assert.AreEqual(2, tree.RightNode.Data); tree = heapTree.Insert(tree, 5).Result; Assert.AreEqual(6, tree.Data); Assert.AreEqual(5, tree.LeftNode.Data); Assert.AreEqual(4, tree.LeftNode.LeftNode.Data); Assert.AreEqual(2, tree.RightNode.Data); }
/// <summary> /// Sorts array /// </summary> /// <param name="arr">The array to be sorted</param> /// <returns>The sorted array</returns> public T[] Sort(T[] arr) { // Sort is done by continuing to pop value into new array HeapTree <T> tree = new HeapTree <T>(arr.Length); T[] ret = new T[arr.Length]; int ap = 0; // I need to insert into tree for (int i = 0; i < arr.Length; i++) { tree.Insert(arr[i]); } while (!tree.IsEmpty()) { ret[ap] = tree.Pop(); ap++; } return(ret); }
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"); }
/// <summary> /// Enqueues a value into queue /// </summary> /// <param name="val">The value to enqueue</param> public void Enqueue(T val) { tree.Insert(val); }