如何检查下一行的长度而不从cin中提取它?
我有以下形式的输入数据:
A
-B
--*
--C
-D
--E
---*
---F
0
我有一个递归函数来构建树。
TreeNode* BuildTree() {
string line;
getline(cin, line);
char id = line[line.size() - 1];
if (id == '0') return NULL;
TreeNode* n = (id == '*') ? NULL : new TreeNode(id, NULL, NULL);
if (/* This line's size less than next line's size */) {
n->left = BuildTree();
n->right = BuildTree();
}
return n;
}
答案 0 :(得分:3)
编写代码,以便提前一行。然后你的if语句变为:
if (/* this line's size is greater than the previous line's size */) {
....
}
或者,如果你可以负担得起内存(并且可能你可以),将整个文件啜饮到vector<string>
然后递归那个。