Saltar al contenido

reglas para convertir infijo a postfijo ejemplo de código

Te damos la bienvenida a proyecto online, en este sitio hallarás la solucíon de lo que necesitas.

Ejemplo: conversión de postfijo de Python

"""
Author :ITVoyagers(itvoyagers.in)

Date :31st October 2019

Description :Program to show use of stack in infix to postfix conversion using python."""
classinfix_to_postfix:precedence='^':5,'*':4,'/':4,'+':3,'-':3,'(':2,')':1
    def __init__(self):
        self.items=[]
        self.size=-1
    def push(self,value):
        self.items.append(value)
        self.size+=1
    def pop(self):if self.isempty():return0else:
            self.size-=1return self.items.pop()
    def isempty(self):if(self.size==-1):return True
        else:return False
    def seek(self):if self.isempty():returnfalseelse:return self.items[self.size]
    def isOperand(self,i):if i in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':return True
        else:return False
    def infixtopostfix(self,expr):
        postfix=""print('postfix expression after every iteration is:')for i in expr:if(len(expr)%2==0):print("Incorrect infix expr")return False
            elif(self.isOperand(i)):
                postfix +=i
            elif(i in '+-*/^'):while(len(self.items)and self.precedence[i]<=self.precedence[self.seek()]):
                    postfix+=self.pop()
                self.push(i)
            elif i is '(':
                self.push(i)
            elif i is ')':
                o=self.pop()while o!='(':
                    postfix +=o
                    o=self.pop()print(postfix)#endof forwhilelen(self.items):if(self.seek()=='('):
                self.pop()else:
                postfix+=self.pop()return postfix
s=infix_to_postfix()
expr=input('enter the expression ')
result=s.infixtopostfix(expr)if(result!=False):print("the postfix expr of :",expr,"is",result)

Si para ti ha resultado provechoso nuestro post, te agradeceríamos que lo compartas con más juniors de este modo nos ayudas a extender esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *