.

Infix To Prefix Bahasa Pemrograman Python

INFIX TO PREFIX

Definisi

          Awalan atau prefix adalah kelompok huruf yang ditempatkan pada bagian awal kata atau root (bentuk paling sederhana) dari suatu kata, sehingga tidak dapat diuraikan lagi. Prefix adalah notasi yang terbentuk atas operator dan operand, dimana operator berada di depan operand.
Operator adalah fungsi yang digunakan dalam proses
Operand adalah data atau nilai yang dibantu dalam proses
Contoh :
A + B * C
Notasi dari prefixnya adalah +A*BC.

Pemecahnya A+B*C

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 infixToPrefix(infixexpr):
    prec = {}
    prec["*"] = 3
    prec["/"] = 3
    prec["+"] = 2
    prec["-"] = 2
    prec["("] = 1
    prec[")"] = 1
    opStack = Stack()
    prefixList = []
    tokenList = infixexpr.split()
    hasil=' '
    for token in tokenList:
        if token in"0123456789" or token in"ABCDEFGHIJKLMNOPQRSTUVWXYZ":
            prefixList.append(token)
        elif token == ')':
            push(opStack,token)
        elif token == '(':
            topToken = pop(opStack)
            while topToken != ')':
                prefixList.append(topToken)
                topToken = opStack.pop()
           
       
        else:
            while (not isEmpty(opStack)) and (prec[peek(opStack)]>= prec[token]):
                  prefixList.append(opStack.pop())
            push(opStack,token)
    while not isEmpty(opStack):
        prefixList.append(opStack.pop())
    return hasil.join(prefixList[::-1])
   

infix = " A +  B * C "
infix_balik = infix[::-1]

print(infixToPrefix(infix_balik))
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