【问题标题】:Preorder traversal of expression tree表达式树的前序遍历
【发布时间】:2021-03-14 04:16:45
【问题描述】:

这个函数打印表达式树的前序遍历

void PreOrder(Node root) {
    if (root)  
    {     
        cout<< root->data<<" "; 
        PreOrder(root->left); 
        PreOrder(root->right);
    } 
    
}

但是想将表达式树的前序遍历返回为字符串。但是下面的代码编译成功但是没有给出任何输出。

string PreOrder(Node root) {
string s="";
    if (root)  
    { 
        s=s+root->data;
        PreOrder(root->left); 
        PreOrder(root->right); 
    } 
    return s;
}

我该如何解决。

【问题讨论】:

  • 递归调用返回的字符串会发生什么?
  • 是的。在主要功能中我做了

标签: c++ tree preorder


【解决方案1】:

您还需要使用对PreOrder 的递归调用的结果:

s += PreOrder(root->left); 
s += PreOrder(root->right); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多