打印binarySearchTree递归到文件

时间:2017-09-04 12:24:57

标签: c++ binary-search-tree

我正在尝试用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);
}

我需要尽快解决它,谢谢大家!!

1 个答案:

答案 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);