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()); }
/// <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); }
/// <summary> /// Dequeues a value from queue /// </summary> /// <returns>The value that was dequeued</returns> public T Dequeue() { return(tree.Pop()); }