我想有一个向量在每次树遍历到右子树时推入'R',并在每次树遍历到左子树时推入'L'。
void reverse_preorder(BTree<string>* root)
{ vector<string>a;
if (root != NULL) {
a.push_back("R");
if(root->right == NULL) a.push_back("L");
reverse_preorder(root->right);
reverse_preorder(root->left);
}
}
但由于某种原因,输出即时获取的顺序不正确。我做错了什么?
答案 0 :(得分:0)
使矢量成为您班级的成员。然后
void reverse_preorder(BTree<string>* root)
{
if (root != NULL) {
if (root->right != NULL) a.push_back("R");
reverse_preorder(root->right);
if (root->left != NULL) a.push_back("L");
reverse_preorder(root->left);
}
}
虽然,我看不出它会如何帮助你做一个'漂亮'的格式化。