美文网首页
逆波兰表达式的简单实现

逆波兰表达式的简单实现

作者: 不穿秋裤浑身难受 | 来源:发表于2018-01-13 12:06 被阅读0次

先上代码:

···

def postfix(midfix:[str],prec_table:{str:int})->[str]:

    main_stack:[str] = []

    result_queue:[str] = []

    for op in midfix:

        if(main_stack!=[]):

            if(op in prec_table.keys()):

                if (op == ')'):

                    while (main_stack!=[] and main_stack[-1]!='('):

                        result_queue.append(main_stack.pop())

                    if (main_stack!=[]):

                        main_stack.pop()

                else:

                    while (main_stack != [] and prec_table[op]

                        result_queue.append(main_stack.pop())

                    main_stack.append(op)

            else:

                result_queue.append(op)

        else:

            if (op in prec_table.keys()):

                main_stack.append(op)

            else:

                result_queue.append(op)

    while (main_stack!=[]):

        result_queue.append(main_stack.pop())

    return result_queue

···

相关文章

网友评论

      本文标题:逆波兰表达式的简单实现

      本文链接:https://www.haomeiwen.com/subject/jctebxtx.html