使用节点的键创建一个数组
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" 从左到右重新排列?
我目前有一个二叉树设置,想用键创建一个数组,这样我就可以对它们进行堆排序操作。我该怎么做?
这是我目前拥有的:
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" 从左到右重新排列?