예제 #1
0
        static void Main(string[] args)
        {
            MaxHeapPriorityQueue pq = new MaxHeapPriorityQueue();

            pq.Enqueue(26, 3);
            pq.Enqueue(24, 3);
            pq.Enqueue(18, 3);
            pq.Enqueue(5, 3);
            pq.Enqueue(20, 3);
            pq.Enqueue(16, 3);
            pq.Enqueue(16, 3);
            pq.Enqueue(14, 3);
            pq.Enqueue(12, 3);
            pq.Enqueue(9, 3);
            pq.Enqueue(10, 3);
            pq.Enqueue(6, 3);
            pq.Enqueue(1, 3);

            //Console.WriteLine("COUNT: " + pq.Count()); //works
            ////Console.WriteLine("PEAK: " + pq.Peek().Priority); //works
            //Console.WriteLine("TOSTRING: " + pq.ToString()); //works

            //Console.WriteLine("DEQUEUE: " + pq.Dequeue());
            //Console.WriteLine("TOSTRING: " + pq.ToString()); //works
            Console.WriteLine("COUNT: " + pq.Count()); //works

            //pq.ToSortedArray();

            for (int i = 0; i < pq.ToSortedArray().Length; i++)
            {
                Console.WriteLine(pq.ToSortedArray()[i].Priority);
            }
        }
        public void PriorotyQueue_ToStringSingleNodePQ()
        {
            MaxHeapPriorityQueue pq = new MaxHeapPriorityQueue();

            pq.Enqueue(0, 0);

            Assert.AreEqual("0:0", pq.ToString());
        }
        public void PriorotyQueue_PeekSingleNodePQ()
        {
            MaxHeapPriorityQueue pq = new MaxHeapPriorityQueue();

            pq.Enqueue(0, 0);

            Assert.AreEqual(0, pq.Peek().Priority);
        }
        public void PriorotyQueue_CountIsCorrectAfterSingleAdd()
        {
            MaxHeapPriorityQueue pq = new MaxHeapPriorityQueue();

            pq.Enqueue(10, 1);

            Assert.AreEqual(1, pq.Count);
        }
        public void PriorotyQueue_CountIsUnchagedAfterPeek()
        {
            MaxHeapPriorityQueue pq = new MaxHeapPriorityQueue();

            pq.Enqueue(10, 1);

            PQNode peek = pq.Peek();

            Assert.AreEqual(1, pq.Count);
        }
        public void PriorotyQueue_ToStringFourNodesPQ()
        {
            MaxHeapPriorityQueue pq = new MaxHeapPriorityQueue();

            pq.Enqueue(0, 0);
            pq.Enqueue(10, 0);
            pq.Enqueue(20, 0);
            pq.Enqueue(30, 0);

            Assert.AreEqual("30:0, 20:0, 10:0, 0:0", pq.ToString());
        }
        public void PriorotyQueue_PeekThirteenNodePQ()
        {
            MaxHeapPriorityQueue pq = new MaxHeapPriorityQueue();

            for (int i = 0; i < 13; i++)
            {
                pq.Enqueue(i * 10, i);
            }

            Assert.AreEqual(120, pq.Peek().Priority);
        }
        public void PriorotyQueue_HeapDoublesInSize()
        {
            MaxHeapPriorityQueue pq = new MaxHeapPriorityQueue();

            for (int i = 0; i < 11; i++)
            {
                pq.Enqueue(10, i);
            }

            Assert.AreEqual(20, pq.GetHeapSize());
        }
        public void PriorotyQueue_DequeueSingleNodePQ()
        {
            MaxHeapPriorityQueue pq = new MaxHeapPriorityQueue();

            for (int i = 0; i < 5; i++)
            {
                pq.Enqueue(i * 10, i);
            }

            PQNode dequeueNode = pq.Dequeue();

            Assert.AreEqual(40, dequeueNode.Priority);
        }
예제 #10
0
        public void PriorotyQueue_MethodsExist()
        {
            MaxHeapPriorityQueue pq = new MaxHeapPriorityQueue();

            pq.Enqueue(10, 1);
            pq.Dequeue();
            pq.Peek();
            pq.ToSortedArray();
            pq.ToString();
            int num = pq.Count;

            Assert.IsNotNull(pq);
        }
예제 #11
0
        public void PriorotyQueue_DequeueFullTreeToEmpty()
        {
            MaxHeapPriorityQueue pq = new MaxHeapPriorityQueue();

            for (int i = 0; i < 13; i++)
            {
                pq.Enqueue(i * 10, i);
            }

            for (int i = 0; i < 16; i++)
            {
                pq.Dequeue();
            }
            Assert.AreEqual(0, pq.Count);
            Assert.AreEqual("", pq.ToString());
        }
예제 #12
0
        public void DequeueFullTreeToEmpty()
        {
            MaxHeapPriorityQueue pq = CreateThirteenNodePQDescending();

            for (int i = 0; i < 13; i++)
            {
                pq.Dequeue();
            }

            int    expectedCount  = 0;
            int    actualCount    = pq.Count;
            string expectedString = "";
            string actualString   = pq.ToString();

            Assert.AreEqual(expectedCount, actualCount);
            Assert.AreEqual(expectedString, actualString);
        }
예제 #13
0
        public void PriorotyQueue_ToSortedArrayFourNodes()
        {
            MaxHeapPriorityQueue pq = new MaxHeapPriorityQueue();

            pq.Enqueue(0, 0);
            pq.Enqueue(10, 0);
            pq.Enqueue(20, 0);
            pq.Enqueue(30, 0);

            PQNode[] array = pq.ToSortedArray();
            string   str   = "";

            foreach (var item in array)
            {
                str += item.Priority + ":" + item.Value + ", ";
            }

            Assert.AreEqual("30:0, 20:0, 10:0, 0:0, ", str);
        }
예제 #14
0
        private MaxHeapPriorityQueue CreateThirteenNodePQDescending()
        {
            MaxHeapPriorityQueue pq = new MaxHeapPriorityQueue();

            pq.Enqueue(13, 10);
            pq.Enqueue(12, 20);
            pq.Enqueue(11, 30);
            pq.Enqueue(10, 40);
            pq.Enqueue(9, 50);
            pq.Enqueue(8, 60);
            pq.Enqueue(7, 70);
            pq.Enqueue(6, 80);
            pq.Enqueue(5, 90);
            pq.Enqueue(4, 100);
            pq.Enqueue(3, 110);
            pq.Enqueue(2, 120);
            pq.Enqueue(1, 130);

            return(pq);
        }
예제 #15
0
        public void PriorotyQueue_CountIsZeroForNewPQ()
        {
            MaxHeapPriorityQueue pq = new MaxHeapPriorityQueue();

            Assert.AreEqual(0, pq.Count);
        }