按顺序打印时遇到问题,二叉树的后顺序等



我在打印我的二叉树的顺序、预序和后序时遇到问题。当我从 cin 阅读时,我让它工作。但是,现在我正在从 txt 文件中读取,我的顺序、预购和后顺序都打印出从 txt 文件中读入的内容。我已经提供了我认为问题存在的代码,如果您需要查看我的其余代码,请发表评论。

我的代码:

int main()
{
    vector <BinaryTree <string> > BT;
    int iteration = 0;
    string line;
    ifstream myfile("input.txt");
    if (myfile.is_open())
    {
        while(getline (myfile, line))
        {
            BinaryTree <string> temptree;
            BT.push_back(temptree);
            BT[iteration].InsertData(line);
            cout << "Preorder: ";
            BT[iteration].PrintPreorder();
            cout << endl;
            cout << "Inorder: ";
            BT[iteration].PrintInorder();
            cout << endl;
            cout << "Postorder: ";
            BT[iteration].PrintPostorder();
            cout << endl;
            cout << "Reverse Inorder: ";
            BT[iteration].PrintReverseInorder();
            cout << endl;
            BT[iteration].PrintPrintTree();
            cout << endl;
            iteration++;
        }
        myfile.close();
    }
    return 0;
}

您的输入是否应该一次是一个字符?当您想要一次接受一个字符时,看起来您正在接受文本行,这可以解释您的输出("abcd"是一个节点,您的根)。

最新更新