我有一个简单的函数来递归地构建一个字符串树。给函数一个字符串“***”,结果树应该是这样的:
***
/ | \
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);
}
}
}
}