Infix to Postfix Bahasa Pemrograman Python

Definisi

Postfix, adalah notasi yang membentuk atas operator dengan operand, dimana operator berada dibelakang operand.
Operator adalah fungsi yang digunakan dalam proses
Operand adalah data atau nilai yang dibantu dalam proses

Contoh : 
A + B * C

Jadi penyelesaiannya,

                 Postfix
A               A
+       +      A
B       +      AB
*        +*   AB
C       +*    ABC

maka notasi postfix adalah ABC*+.

Ilustrasi


Kode Program :

def Stack():
    opStack=[]
    return opStack
    
def push(opStack,data):
    opStack.append(data)
    
def pop(opStack):
    data = opStack.pop()
    return data
   
def peek(opStack):
    return opStack[len(opStack)-1]
        
def isEmpty(opStack):
    return opStack == []
    
def size(opStack):

    return len(opStack)

def infixToPostfix(infixexpr):
    prec = {}
    prec["*"] = 3
    prec["/"] = 3
    prec["+"] = 2
    prec["-"] = 2
    prec["("] = 1
    opStack = Stack()
    postfixList = []
    tokenList = infixexpr.split()

    for token in tokenList:
        if token in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" or token in "0123456789":
            postfixList.append(token)
        elif token == '(':
            opStack.push(token)
        elif token == ')':
            topToken = opStack.pop()
            while topToken != '(':
                postfixList.append(topToken)
                topToken = opStack.pop()
        else:
            while (not opStack.isEmpty()) and \
               (prec[opStack.peek()] >= prec[token]):
                  postfixList.append(opStack.pop())
            opStack.push(token)

    while not opStack.isEmpty():
        postfixList.append(opStack.pop())
    return " ".join(postfixList)


print(infixToPostfix(" ( A *  B ) + C " ) )

Postingan terkait:

1 Tanggapan untuk "Infix to Postfix Bahasa Pemrograman Python"

  1. mantap gan sangat membantu ,,, kasih link download juga gan :) hhh

    BalasHapus