Beispiel #1
0
        public void It_delete_min_item()
        {
            var list = new List <int>();
            var heap = new BinaryHeap <int>(list, MinHeapIntComparer.Default);

            heap.AddRange(new int[] { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, });

            Assert.AreEqual(0, heap.DeleteRoot());
            Assert.AreEqual(new int[] { 1, 2, 4, 3, 7, 8, 5, 9, 6, }, list.ToArray());
            Assert.AreEqual(1, heap.DeleteRoot());
            Assert.AreEqual(new int[] { 2, 3, 4, 6, 7, 8, 5, 9, }, list.ToArray());
            Assert.AreEqual(2, heap.DeleteRoot());
            Assert.AreEqual(new int[] { 3, 6, 4, 9, 7, 8, 5, }, list.ToArray());
            Assert.AreEqual(3, heap.DeleteRoot());
            Assert.AreEqual(new int[] { 4, 6, 5, 9, 7, 8, }, list.ToArray());
            Assert.AreEqual(4, heap.DeleteRoot());
            Assert.AreEqual(new int[] { 5, 6, 8, 9, 7, }, list.ToArray());
            Assert.AreEqual(5, heap.DeleteRoot());
            Assert.AreEqual(new int[] { 6, 7, 8, 9, }, list.ToArray());
            Assert.AreEqual(6, heap.DeleteRoot());
            Assert.AreEqual(new int[] { 7, 9, 8, }, list.ToArray());
            Assert.AreEqual(7, heap.DeleteRoot());
            Assert.AreEqual(new int[] { 8, 9, }, list.ToArray());
            Assert.AreEqual(8, heap.DeleteRoot());
            Assert.AreEqual(new int[] { 9, }, list.ToArray());
            Assert.AreEqual(9, heap.DeleteRoot());
            Assert.AreEqual(0, heap.Count);
        }
Beispiel #2
0
        private static int[] AddAndGetArray(int[] data)
        {
            var list = new List <int>();
            var heap = new BinaryHeap <int>(list, MinHeapIntComparer.Default);

            heap.AddRange(data);

            return(list.ToArray());
        }