使用哪种类型的算法从以前缀顺序表示的表达式构造语法树?
最佳答案
简单的递归算法可以将前缀顺序表达式转换为语法树。
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/