我正在尝试用c ++写一个bst到一个文件,树将打印在orrder中。 注意:当我打印到屏幕时,我发现它确实在所有节点中都是正常的。
ofstream file;
file.open(output);
if (bs != NULL)
{
if (bs->getLeft())
printTreeToFile(bs->getLeft(), output);
file << bs->getData();
if (bs->getRight())
printTreeToFile(bs->getRight(), output);
}
我需要尽快解决它,谢谢大家!!
答案 0 :(得分:0)
您在每次递归调用中打开文件,这将无效。
编写一个带std::ostream&
而不是文件名的函数更有用:
void printTree(Tree* bs, std::ostream& os)
{
if (bs != NULL)
{
printTree(bs->getLeft(), os);
os << bs->getData();
printTree(bs->getRight(), os);
}
}
// ...
// Example use:
// Print to standard out
printTree(tree, cout);
// Print to a file
ofstream file(filename);
printTree(tree, file);