Database System Concepts
Database System Concepts
7th Edition
ISBN: 9780078022159
Author: Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher: McGraw-Hill Education
Bartleby Related Questions Icon

Related questions

Question

Java Code JDK 11
Please Turn my min-heap into a max -heap. Thank you!

public MinHeap(ArrayList<T> data) {
        // Initialize the backing array
        backingArray = (T[]) new Comparable[2 * data.size() + 1];

        // Copy the data to the backing array
        int i = 1;
        for (T value : data)
            backingArray[i++] = value;

        size = data.size();

        // Heapify the backing array
        for (int parentIndex = size / 2; parentIndex >= 1; parentIndex--)
            heapify(parentIndex);
    }

    /**
     * A recursive helper method that will heapify the backing array so that
     * it will become a min heap.
     *
     * @param parentIndex Parent index being processed
     */
    private void heapify(int parentIndex) {
        // Stop if we end up in an empty slot
        if (backingArray[parentIndex] == null)
            return;

        int leftChildIndex = parentIndex * 2;
        int rightChildIndex = parentIndex * 2 + 1;

        // Find which is smaller between the parent and any of its 2 children
        int smallerIndex = parentIndex;

        if (leftChildIndex <= size && backingArray[leftChildIndex].compareTo(backingArray[smallerIndex]) < 0)
            smallerIndex = leftChildIndex;

        if (rightChildIndex <= size && backingArray[rightChildIndex].compareTo(backingArray[smallerIndex]) < 0)
            smallerIndex = rightChildIndex;

        // Swap the smaller value to the parent if there is smaller than the parent
        if (smallerIndex != parentIndex) {
            T value = backingArray[parentIndex];
            backingArray[parentIndex] = backingArray[smallerIndex];
            backingArray[smallerIndex] = value;

            // Since there's a new parent, repeat the process on that parent
            heapify(smallerIndex);
        }
    }

Expert Solution
Check Mark
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education