首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

一个后缀转换为中缀表达式的有关问题

2013-01-07 
一个后缀转换为中缀表达式的问题将转换后的后缀表达式装换为中缀表达式,形式要稍微改变例如 ab+变为 (a+b)

一个后缀转换为中缀表达式的问题
将转换后的后缀表达式装换为中缀表达式,形式要稍微改变
例如 ab+变为 (a+b),abc+-变为(a-(b+c))
求大神给个想法吧,我想了很久了,要不就是大麻烦要不就是不可行
[解决办法]
先把中缀转后缀搞清楚,这个应该不难,词法分析略过,只提供思路

def convert(s):
    s = s.split(' ')
    stack = []
    operators = ['-','+','*','/']
    while s:
        stack.append(s.pop(0))
        if len(stack)>=3 and stack[-1] in operators and stack[-2] not in operators and stack[-3] not in operators:
            stack[-3:] = ['('+' '.join((stack[-3],stack[-1],stack[-2]))+')']
    return stack[0]


print(convert('a b +'))
print(convert('a b c + -'))


result
(a + b)
(a - (b + c))

热点排行