使用节点的键创建一个数组

Create an array with the keys of nodes

我目前有一个二叉树设置,想用键创建一个数组,这样我就可以对它们进行堆排序操作。我该怎么做?

这是我目前拥有的:

public static void main(String args[]) throws IOException
{
    BufferedReader in = new BufferedReader(new FileReader("employee.txt"));
    String line;
    Heap employee = new Heap();

    while((line = in.readLine())!= null)
    {
        String[]text = line.split(" ");
        employee.insert(Double.parseDouble(text[0]), Double.parseDouble(text[1]));

    }
    in.close();
}

我使用的二叉树非常标准,但如果需要我可以 post。 "text[0]" 段是每个节点的键。

一种可能是使用 TreeSet class in combination with a Comparator。 TreeSet 可以像堆一样工作。 class 有据可查,但如果您有更多问题,请提出。

编辑

看看here。接受的答案向您展示了二叉树的实现。您现在需要的是 class 中的排序函数实现,它可以在元素插入时触发,也可以在需要时手动触发。

我仍然不明白您想如何将树转换为堆,因为它们是不同的东西。我猜你的意思是树应该 "read" 从左到右重新排列?