.

Infix To Postfix 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()
    hasil=' '
   
    for token in tokenList:
        if token in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" or token in "0123456789":
            postfixList.append(token)
        elif token == '(':
            push(opStack,token)
        elif token == ')':
            topToken = pop(opStack)
            while topToken != '(':
                postfixList.append(topToken)
                topToken = opStack.pop()
           
       
        else:
            while (not isEmpty(opStack)) and \
               (prec[peek(opStack)] >= prec[token]):
                  postfixList.append(opStack.pop())
            push(opStack,token)
      
       

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

print(infixToPostfix("A + B * C - D"))
Share this article :
 
 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. Master Of Everything - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger