У меня есть метод, который должен печатать двоичное дерево в файл. Это он:печать двоичного дерева в файл
public void writeFile(Node mainNode)
{
FileOutputStream outputStream = null;
PrintWriter printWriter = null;
try
{
outputStream = new FileOutputStream("BinaryTree.txt");
printWriter = new PrintWriter(outputStream);
while(mainNode != null)
{
writeFile(mainNode.leftChild);
printWriter.print(mainNode);
writeFile(mainNode.rightChild);
}
printWriter.close();
}catch(IOException e)
{
System.out.println("An error occured");
printWriter.close();
}
}
Проблема заключается в том, что она, кажется, вечно цикл, как это не находя конец дерева. Я могу попробовать.
Вот и класс Node.
class Node
{
int id;
int grade;
String name;
Node leftChild;
Node rightChild;
Node(int id, int grade, String name)
{
this.id = id;
this.grade = grade;
this.name = name;
}
public String toString()
{
return name + " has a grade of " + grade + " and their ID is " + id;
}
}
Точно. Однако, возможно, вы захотите разработать немного больше. Я этого раньше не видел! Хорошая мысль. – HyperNeutrino
Ну, когда mainNode возвращает null, тогда он должен вырваться. Не так ли? – Allan
@Allan Ну, mainNode не является нулевым, когда вы вводите цикл, и он никогда не изменяется. Рекурсивные вызовы внутри повторяются снова и снова, хотя где-то в этих рекурсивных вызовах может быть нулевой mainNode – schwobaseggl