kintralha Posted July 3, 2011 Report Share Posted July 3, 2011 Hola querida comunidad, mi profesor me dió la siguiente tarea. 1. Crear una pila auxiliar (pila2), donde iran guardando copias de los nodos que se irán eliminando con el metodo pop (de la pila original) 2. agregar las lineas necesarias para crear las copias de los nodos eliminados y agregarlos a la pila auxiliar. 3. crear un método pop2 que permita mostrar los valores del primer nodo de la pila auxiliar y elimine dicho nodo (igual a pop pero para la pila auxiliar) 4. Agregar la opcion de pop2 al menú y agregar la llamada desde el método main. Esto debo aplicarlo al siguiente código #include<stdio.h> #include<stdlib.h> typedef struct _Pnodo{ int tope; int valor; struct _nodo*siguiente; }tipoNodo; int valtope=10; typedef tipoNodo *PPila; typedef tipoNodo *Pauxiliar; PPila pila; //declaracion de metodos void push(PPila *pila); int pop(PPila *pila); void mostrar(PPila *pila); //implementacion de los metodos declarados anteriormente + el main() void push(PPila *pila) { if(valtope>0) { Pauxiliar aux; aux=(Pauxiliar)malloc(sizeof(tipoNodo)); printf("Ingrese el valor del nodo: "); scanf("%d",&aux->valor); fflush(stdin); valtope--;//disminuimos en 1 aux->tope=valtope;// aux valtope le coloca nueve aux->siguiente=*pila;//insertamos el nodo a la pila *pila=aux; }else { printf("\nPila Llena!!!....."); } } int pop(PPila *pila)//cada ves que utilicemos el pop se elimina el 1 nodo //tiene que ingresar un valor eliminar el anterior { int aux=0; Pauxiliar paux; paux=*pila; aux=paux->valor; *pila=paux->siguiente; free(paux); valtope++;//valor de la kantidad de espacio ke queda disponible de la pila return aux; } int main() { char opcion='\0'; do { printf("##################### MENU ########################\n"); printf("#### 1.-PUSH ###\n"); printf("#### 2.-POP ###\n"); printf("#### 0.-SALIR ###\n"); printf("###################################################\n"); printf("Elija una opcion: "); scanf("%c",&opcion); fflush(stdin); switch(opcion) { case '1': push(&pila); break; case '2': pop(&pila); if(pila !=NULL) { printf("\nel valor del nodo es %d:\n",pop (&pila)); }else { printf("\npila vacia\n"); } break; } }while(opcion!='0'); } Alguien puede ayudarme, porque nos hemos cabeceado con un compañero de curso y no nos da. Saludos gente. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now