Ejemplo n.º 1
0
        public void consolidateTree()
        {
            FibonacciHeap heap = new FibonacciHeap();
            FibonacciNode n1 = heap.insert(1);
            FibonacciNode n2 = heap.insert(2);
            n1.MinPathValue = 23;
            n2.MinPathValue = 7;
            heap.consolidateTree(heap.root);

            Assert.AreEqual(2, heap.minNode.StationID);
            Assert.AreEqual(n2, n1.Parent);
            Assert.AreEqual(1, n2.Degree);
            Assert.AreEqual(0, n1.Degree);
            Assert.AreEqual(n1, n2.Child);

            FibonacciNode n3 = heap.insert(3);
            n3.MinPathValue = 2;
            heap.consolidateTree(heap.root);

            Assert.AreEqual(3, heap.minNode.StationID);
            Assert.AreEqual(0, n3.Degree);
            Assert.AreEqual(null, n3.Parent);
            Assert.AreEqual(null, n3.Child);
            Assert.AreEqual(n2, n1.Parent);
            Assert.AreEqual(1, n2.Degree);
            Assert.AreEqual(0, n1.Degree);
            Assert.AreEqual(n1, n2.Child);
        }