我目前有一个二叉树设置,并希望使用键创建一个数组,以便我可以对它们进行堆排序操作。我该怎么做呢?
以下是我目前的情况:
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]”段是每个节点的密钥。
答案 0 :(得分:0)
一种可能性是将TreeSet类与Comparator结合使用。 TreeSet可以像堆一样运行。该课程有详细记录,但如果您有更多问题,请询问。
修改
看看here。接受的答案显示了二叉树的实现。您现在需要的是该类中的排序函数实现,可以在元素插入时触发,也可以在需要时手动触发。
我仍然没有看到你想如何将树切换成堆,因为它们是不同的东西。我想你的意思是树应该是"读"从左到右说如此重新排列?