バイナリツリーをファイルに出力する方法があります。これは、それは次のとおりです。バイナリツリーをファイルに出力する
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はnullではなく、変更されません。これらの再帰呼び出しのどこかでmainNodeがnullの可能性がありますが、内部の再帰呼び出しは何度も何度も繰り返されます。 – schwobaseggl