Java 如何实现MaxHeap的级别顺序打印

Java 如何实现MaxHeap的级别顺序打印,java,tree,heap,tree-traversal,Java,Tree,Heap,Tree Traversal,我目前正在制作一个MaxHeap程序,我需要按级别顺序打印我的堆。如何做到这一点?我是在heap类中创建一个按级别顺序打印堆的方法,还是在主类中创建?我知道,就像我的二叉搜索树项目一样,我使用了迭代方法,并从我的主类调用了它们,但我不确定我是否能在这里做到这一点。下面是我在教科书中对MaxHeap类的实现: public final class MaxHeap<T extends Comparable<? super T>> implements MaxHeapInter

我目前正在制作一个MaxHeap程序,我需要按级别顺序打印我的堆。如何做到这一点?我是在heap类中创建一个按级别顺序打印堆的方法,还是在主类中创建?我知道,就像我的二叉搜索树项目一样,我使用了迭代方法,并从我的主类调用了它们,但我不确定我是否能在这里做到这一点。下面是我在教科书中对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;
}
公共最终类MaxHeap