1

我想要一个向量,每次树遍历到右子树时推入“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);
    }
}

但由于某种原因,我得到的输出顺序不正确。我究竟做错了什么?

4

1 回答 1

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);
    }
}

不过,我看不出它将如何帮助您进行“漂亮”的格式化。

于 2013-11-05T23:07:33.293 回答