Я сейчас создаю программу MaxHeap, и мне нужно распечатать мою кучу в порядке уровней.Как это может быть сделано?Создаю ли я метод для печати кучи в порядке уровней внутри моего класса кучи или я сделаю это в своем основном классе?Я знаю, что, как и мой проект дерева бинарного поиска, я использовал итерационные методы и вызывал их из своего основного класса, но я не уверен, что смогу сделать это здесь.Ниже моя реализация класса MaxHeap из моего учебника:
public final class MaxHeap<T extends Comparable<? super T>> implements MaxHeapInterface<T>
{
private T[] heap;
private int lastIndex;
private boolean initialized = false;
private static final int DEFAULT_CAPACITY = 25;
private static final int MAX_CAPACITY = 10000;
int swaps=0;
public MaxHeap() {
this(DEFAULT_CAPACITY);
}
public MaxHeap(int initialCapacity) {
if (initialCapacity < DEFAULT_CAPACITY)
initialCapacity = DEFAULT_CAPACITY;
else
checkCapacity(initialCapacity);
@SuppressWarnings("unchecked")
T[] tempHeap = (T[]) new Comparable[initialCapacity + 1];
heap = tempHeap;
lastIndex = 0;
initialized = true;
}
public T getMax() {
checkInitialization();
T root = null;
if (!isEmpty())
root = heap[1];
return root;
}