【问题标题】:Create an array with the keys of nodes使用节点的键创建一个数组
【发布时间】:2016-04-25 15:02:48
【问题描述】:

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

这是我目前拥有的:

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();
}

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

【问题讨论】:

    标签: java arrays tree binary-tree heapsort


    【解决方案1】:

    一种可能性是将TreeSet 类与Comparator 结合使用。 TreeSet 可以表现得像一个堆。该课程有很好的文档记录,但如果您有更多问题,请提出。

    编辑

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

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

    【讨论】:

    • 我不确定我们是否可以使用它。我们应该使用二叉树,所以我试图弄清楚如何根据键本身创建一个数组。
    • 你必须自己实现的二叉树。如果您需要更多帮助,您需要指定您正在使用的密钥。或者您可以考虑使用现成的 Map 实现。
    • 我已经创建了二叉树。我使用的关键是插入函数中的“text [0]”。目前它正在从一个文本文件中读取,该行的第一个数字是键,第二个是该数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 2020-05-27
    相关资源
    最近更新 更多