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

标签 java arrays tree binary-tree heapsort

我目前有一个二叉树设置,并且想创建一个带有键的数组,以便我可以对它们进行堆排序操作。我该如何去做呢?

这是我目前拥有的:

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]”段是每个节点的键。

最佳答案

一种可能性是使用 TreeSet类与 Comparator 结合使用。 TreeSet 的行为类似于堆。该类(class)有详细记录,但如果您有更多问题,请询问。

编辑

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

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

关于java - 使用节点的键创建一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36844302/

相关文章:

java - 登录成功后向Android反馈数据

python - 将 0 替换为 pandas 数据帧中数组中的最后一个值(类似于具有 NaN 值的 fillna 方法)

创建 4 个推送到数组的随机数的 JavaScript 函数?

ajax - 具有动态更新 api 的 extjs TreeStore 代理

java - 在 Java 中镜像二叉树

java - Window Batch 文件集成到 Java GUI 中

java - 将两个或多个数据库链接到一个大数据库的术语是什么?

java - 如何正确 append 到 JTextPane

arrays - 在 D' 共享库和 Pascal (Lazarus) 主机之间发送/接收字符串和数组

c - ubuntu树命令模拟打开文件过多