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