ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Infijo A Postfijo


Enviado por   •  26 de Noviembre de 2012  •  314 Palabras (2 Páginas)  •  447 Visitas

Página 1 de 2

#include <stdio.h>

#include <conio.h>

#include <string.h>

#define MAXIMO 100

struct LIFO {

int t;

char a[100];

};

int main (){

char posfijo [100],infijo[100];

int i;

void in_a_pos (char *infijo,char *posfijo);

printf ("De expresion escrita correctamente en infijo.\n");

printf ("Este programa no trabaja expresiones con Parentesis \n");

gets (infijo);

i = strlen (infijo);

infijo [i] = '#';

infijo [i+1] = '\0';

in_a_pos (infijo,posfijo);

printf ("%s %s ",infijo,posfijo);

}

void in_a_pos (char *infijo,char *posfijo) {

struct LIFO pila;

int operando (char c);

int prioridad (char op1,char op2);

char tope (struct LIFO p);

void init_pila (struct LIFO *p);

int pila_vacia (struct LIFO *p);

void ins_pila (struct LIFO *p,char s);

void retira_pila (struct LIFO *p,char *s);

int i,j;

char elemento;

i=0;

j=-1;

init_pila (&pila);

while (infijo [i] != '#') {

if (operando (infijo [i]) )

posfijo [++j] = infijo [i++];

else {

while (!pila_vacia (&pila) &&

prioridad (tope (pila),infijo [i] ) ) {

retira_pila (&pila,&elemento);

posfijo [++j] = elemento;

}

ins_pila (&pila,infijo [i++]);

}

}

while (!pila_vacia (&pila) ) {

retira_pila (&pila,&elemento);

posfijo [++j] = elemento;

}

posfijo [++j] = '\0';

}

int operando (char c) {

return ( c != '+' &&

c != '-' &&

c != '*' &&

c != '/' &&

c != '^' );

}

static int m[5][5] = {

{ 1,1,0,0,0 },

{ 1,1,0,0,0 },

{ 1,1,1,1,0 },

{ 1,1,1,1,0 },

{ 1,1,1,1,1 }

...

Descargar como (para miembros actualizados) txt (3 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com