码迷,mamicode.com
首页 > 其他好文 > 详细

expression tree to string

时间:2014-11-23 17:17:23      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   os   sp   on   div   log   

+
/ \
1 *
/ \
5 6

这样的。要返回1+(5*6)

struct TreeNode
{
    TreeNode * left, *right;
    string val;
    TreeNode(string i) :val(i), left(NULL), right(NULL){}
};
 
bool IsOperator(const string & c)
{
    if (c.length() > 1 || (c[0] >= 0 && c[0] <= 9))
    {
        return false;
    }
    return true;
}
 
string ExpressionTreeToString(TreeNode * node)
{
    if (node == NULL)
        return "";
    string ret = node->val;
    if (IsOperator(node->val))
    {
        if (node->left)
        {
            if (IsOperator(node->left->val))
            {
                ret.insert(0, "(" + ExpressionTreeToString(node->left) + ")");
            }
            else
            {
                ret.insert(0, ExpressionTreeToString(node->left));
            }
        }
        if (node->right){
            if (IsOperator(node->right->val))
            {
                ret += "(" + ExpressionTreeToString(node->right) + ")";
            }
            else
            {
                ret += ExpressionTreeToString(node->right);
            }
        }
    }
    return ret;
}

 

expression tree to string

标签:style   blog   io   color   os   sp   on   div   log   

原文地址:http://www.cnblogs.com/jobfindingnotes/p/4116629.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!