Autor
|
Tema: Ayuda con programa en C de Pilas (Leído 2,960 veces)
|
Emily
Desconectado
Mensajes: 18
|
Hola a todos verán tengo que realizas un programa en c utilizando pilas Al programa le tengo que ingresar una ecuación ejemplo {(3+3)} de esta ecuación solo tengo que guardar el {,( en una pila pero cuando detecte los ),} tengo que eliminar la pila en donde se encuentra su pareja #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> typedef struct Nodo{ int Dato; struct Nodo *sig; }Nodo; Nodo *Crear(char dato){ Nodo *espacio; espacio =(Nodo *)malloc(sizeof(Nodo )); espacio->Dato=dato; espacio->sig=NULL; return espacio; } Nodo *Alta(char dato,Nodo *cima){ Nodo *box; box=Crear(dato); if(cima==NULL){ cima=box; }else{ box->sig=cima; cima=box; } return cima; } void Mostrar(Nodo *cima){ if(cima==NULL){ printf("\nNo hay ningun dato\n"); }else{ while(cima!=NULL){ printf ("\n| %c |\n ___ ",cima ->Dato ); cima=cima->sig; } } } Nodo *Baja(Nodo *cima){ Nodo *aux; if(cima==NULL){ return 0; }else{ aux=cima; cima=aux->sig; return cima; } } int main(){ int c; struct Nodo *Pila; Pila=NULL; switch (c){ case '(': Pila=Alta(c,Pila); break; case '{': Pila=Alta(c,Pila); break; case '[': Pila=Alta(c,Pila); break; case ')': break; } } Mostrar(Pila); }
tengo este avance de mi código, ya guarda en las pilas los (,{,[ pero no se de que manera decirle que cuando encuentre un ),},] y coincida con el ultimo que se ingreso lo elimine por favor alguien explíqueme de que manera puedo compararlos
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Cuándo te encuentres un ), ], } vas vaciando la pila y realizando operaciones hasta que te encuentres con su par.
*Si llegas a un símbolo diferente o al inicio de la pila es que la entrada está mal construida.
Cuándo llegues al par introduces en la pila el valor resultante de las operaciones que has realizado hasta ahora y continuas leyendo la entrada.
|
|
|
En línea
|
|
|
|
Emily
Desconectado
Mensajes: 18
|
Eso es lo que necesito hacer pero ya me atore en las comparaciones
|
|
|
En línea
|
|
|
|
Emily
Desconectado
Mensajes: 18
|
Ya logre avanzar mas con mi programa, pero ahora mi duda es como puedo hacer la comparación de que cuando al inicio de la cadena se ingrese un ),],} marque un error Aquí esta mi código Alguien de favor me podría decir una manera con la cual pueda hacer la comparación o explicarme una forma de hacerla#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> typedef struct Nodo{ int Dato; struct Nodo *sig; }Nodo; Nodo *Crear(char dato){ Nodo *espacio; espacio =(Nodo *)malloc(sizeof(Nodo )); espacio->Dato=dato; espacio->sig=NULL; return espacio; } Nodo *Alta(char dato,Nodo *cima){ Nodo *box; box=Crear(dato); if(cima==NULL){ cima=box; }else{ box->sig=cima; cima=box; } return cima; } void Mostrar(Nodo *cima){ if(cima==NULL){ printf("\nNo hay ningun dato\n"); }else{ while(cima!=NULL){ printf ("\n| %c |\n ___ ",cima ->Dato ); cima=cima->sig; } } } Nodo *Baja(Nodo *cima){ Nodo *aux; if(cima==NULL){ return 0; }else{ aux=cima; cima=aux->sig; return cima; } } int main(){ int c; struct Nodo *Pila; Pila=NULL; switch (c){ case '(': Pila=Alta(c,Pila); break; case '{': Pila=Alta(c,Pila); break; case '[': Pila=Alta(c,Pila); break; case ')': if ((Pila->Dato)=='('){ Pila=Baja(Pila); }else{ printf("La ecuacion no esta balanceada"); return 0; } break; case ']': if ((Pila->Dato)=='['){ Pila=Baja(Pila); }else{ printf("La ecuacion no esta balanceada"); return 0; } break; case '}': if ((Pila->Dato)=='{'){ Pila=Baja(Pila); }else{ printf("La ecuacion no esta balanceada"); return 0; } break; } } printf("La ecuacion esta balanceada"); Mostrar(Pila); }
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Aplicacion de Consola C# - Programa Pilas
« 1 2 »
.NET (C#, VB.NET, ASP)
|
Castiel
|
10
|
16,506
|
3 Agosto 2016, 05:58 am
por El Benjo
|
|
|
Ayuda con Pilas c#
.NET (C#, VB.NET, ASP)
|
javyhor
|
1
|
2,930
|
27 Mayo 2016, 08:47 am
por mdkusz
|
|
|
[Error] ld returned 1 exit status en mi programa de pilas y colas
Programación C/C++
|
creiko
|
0
|
4,148
|
19 Octubre 2016, 07:38 am
por creiko
|
|
|
Programa de archivos y pilas
Programación C/C++
|
celest275
|
1
|
2,058
|
10 Abril 2018, 22:44 pm
por Kenji-chan
|
|
|
Duda con programa de Pilas
Programación C/C++
|
Emily
|
2
|
3,250
|
3 Febrero 2019, 08:25 am
por Emily
|
|