无法按顺序打印,二进制树的发布顺序等

时间:2014-02-26 22:32:55

标签: c++

我无法打印我的二进制树的顺序,预订和发布顺序。当我从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;
}

1 个答案:

答案 0 :(得分:0)

您的输入一次应该是一个字符吗?当您希望一次接受一个字符时,看起来您正在接受文本行,这可以解释您的输出(&#39; abcd&#39;是单个节点,您的根)。