Ir al contenido principal

Código Python para pasar de notación postfija a infija

Este código es un borrador en  Python que convierte una expresión en notación postfija a notación infija ordenada por paréntesis:
stack = []

#expresion = "AB+CD+*"
expresion = "ABC+*"

for carac in expresion:
  print carac
  if carac == "+" or carac == "*":
    a = stack.pop()
    b = stack.pop()
    stack.append("(" + b + carac + a + ")")
  else: # Apilo caracteres
    stack.append(carac)
    
print stack.pop()

Comentarios

Entradas más populares de este blog

TIPS: Tres algoritmos para convertir una imagen de color a gris en python

Hace un tiempo necesitaba convertir unas imágenes que estaban en color a escalas de grises utilizando python. Buscando en internet encontré un sitio donde explicaban las fórmulas que se utilizan en el GIMP para realizar la conversión.

La tira cómica de Raulito el Friki

Buscando algunas cosas que necesitaba para comunicar un dispositivo por voip, me encontré en un grupo de interés que hacía referencias al sitio y luego de leer un rato no paré de reírme.

De Modelos, Metamodelos y Metametamodelos

Todo informático, cuando recién está iniciandose en la materia, sólo ve código y programación. La mayoría de ellos, una vez que empiezan a trabajar en proyectos reales, suponen que aquélla es la única y exclusiva forma de desarrollar software; paradigmas como Xtreme Programming ( Programación Extrema ) intentan exacerbar la idea de que el código lo es todo a la hora de crear software. Siendo la Programación Extrema una metodología que da buenos resultados en proyectos de pequeña y mediana envergadura, existen otras alternativas que están cobrando fuerza a la hora de desarrollar software, las cuales se centran en la idea de abstraer de los detalles de implementación, enfocándose directamente en la problemática que el software intenta resolver. Una de esas metodologías es Model Driven Architecture (Arquitectura Dirigida por Modelos), donde la idea central es definir la estructura y comportamiento del sistema utilizando lenguajes de modelamiento ( UML en este caso), para luego, utiliza...