我目前有一个二叉树设置,并且想创建一个带有键的数组,以便我可以对它们进行堆排序操作。我该如何去做呢?
这是我目前拥有的:
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/