使用哪种类型的算法从以前缀顺序表示的表达式构造语法树?

最佳答案

简单的递归算法可以将前缀顺序表达式转换为语法树。

GetNextPrefixExpression(tokenStream)
    nextToken = tokenStream.GetNextToken()
    if nextToken.IsValue()
        return new Value(nextToken)
    else if nextToken.IsUnaryOperator()
        return new UnaryOperator(nextToken, GetNextPrefixExpression(tokenStream))
    else if nextToken.IsBinaryOperator()
        return new BinaryOperator(nextToken, GetNextPrefixExpression(tokenStream), GetNextPrefixExpression(tokenStream))
    else if nextToken.IsTrinaryOperator()
        return new TrinaryOperator(nextToken, GetNextPrefixExpression(tokenStream), GetNextPrefixExpression(tokenStream), GetNextPrefixExpression(tokenStream))

关于algorithm - 从前缀顺序表达式构建语法树的算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3232690/

10-12 21:23