在txt文件中显示BST

时间:2017-05-16 07:22:02

标签: c++

我有一个在控制台中显示BST树的功能,它适用于小树:

void BST::display(node *ptr, int level)
{
    int i;
    if (ptr != NULL)
    {
        display(ptr->right, level+1);
        cout<<endl;
        if (ptr == root)
            cout<<"Root->:  ";
        else
        {
            for (i = 0;i < level;i++)
                cout<<"       ";
    }
        cout<<ptr->info;
        display(ptr->left, level+1);
    }
}

但是当树变得越来越大时,BST没有显示属性 - 可能因为我在控制台中只有80位宽度 - 所以我必须在txt文件中显示它 - 所以我很少重建我的功能到这样的东西 - 但我不知道为什么它不起作用:

void BST::display(node *ptr, int level)
{
    int i;
    std::fstream file_bst( "bst.txt", std::ios::out | ios::trunc );
    if (ptr != NULL)
    {

        display(ptr->right, level+1);
        file_bst<<"\n";
        if (ptr == root)
            file_bst<<"Root->:  ";
        else
        {
            for (i = 0;i < level;i++)
                file_bst<<"       ";
    }
        file_bst<<ptr->data;
        display(ptr->left, level+1);
    }
    file_bst.close();
}

1 个答案:

答案 0 :(得分:0)

我只是通过移动来解决问题:

std::fstream file_bst( "bst.txt", std::ios::out);

上面

void BST::display(node *ptr, int level)