Ejemplo n.º 1
0
        public void InsertAndExtractSomeNumbers(int[] input, int[] output)
        {
            var sut = new MinBinaryHeap(5);

            foreach (var item in input)
            {
                sut.Insert(item);
            }

            foreach (var item in output)
            {
                Assert.Equal(item, sut.ExtractMin());
            }
        }
Ejemplo n.º 2
0
        public void Insert(int value)
        {
            if (IsEmpty())
            {
                minBinaryHeap.Insert(value);
            }
            else if (value > Median())
            {
                minBinaryHeap.Insert(value);
            }
            else
            {
                maxBinaryHeap.Insert(value);
            }

            if (minBinaryHeap.Size() > maxBinaryHeap.Size() + 1)
            {
                maxBinaryHeap.Insert(minBinaryHeap.ExtractMin());
            }
            else if (maxBinaryHeap.Size() > minBinaryHeap.Size() + 1)
            {
                minBinaryHeap.Insert(maxBinaryHeap.ExtractMax());
            }
        }