1
我有一个简单的函数来递归地构建一个字符串树。该功能被赋予一个字符串“***”和树上的结果应该是这样的:使用递归的非二叉树不会创建整个树
***
/ | \
X** *X* **X
/\ /\ /\
XX* X*X XX* *XX X*X *XX
/ \ / \ / \
XXX XXX XXX XXX XXX XXX
的问题是,我的功能仅在创建树的最远的左侧(X **,XX *,XXX)
下面是函数:
//Takes in the string "***"
void buildTree(string tree){
if (tree == "XXX") return;
else{
string newTree;
for (int i=0; i<tree.size(); i++){
if(tree[i] == '*'){
newTree = tree;
newTree[i] = 'X';
cout << newTree << endl;
return buildTree(newTree);
}
}
}
}
我正确缩进了代码。也许你现在能够更容易地发现错误 – Oswald