0
我有在控制檯顯示BST樹的功能,它完全適用於小喬木:在txt文件顯示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犯規顯示propertly - propably因爲我有隻有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();
}
你是什麼意思 「不工作」 嗎? – DvoryankinEvgeny
我只有2行輸出,例如: Root->:1116 314 163 1 0 –
我不喜歡你如何打開文件。你有沒有考慮添加一個對'std :: ostream'的引用作爲參數?這樣你就可以對'cout'使用相同的函數,並消除所有的開啓/關閉開銷。 – user4581301