Chicos soy nuevo en el grupo y no se si pueda poner este problema en esta sección pero necesito ayuda X_x, alguien podria decirme como eliminar un elemento de pila segun su posicion?, es decir en un lado aparece la posicion 1-2-3-4-5 y en el otro los numeros que estan alli, de momento ni tengo ni idea de como comenzar esa funcion y de momento solo tengo esto T_T
#include <iostream> #include <stdlib.h> #include <conio.h> using namespace std; struct Nodo { int Numero; Nodo *sgt; };
int acu = 0; int i ;
void INP(Nodo *&, int ); //INP = Insertar numeros a la pila void VNP(Nodo *); //VNP = Ver numeros de la pila void BNP(Nodo *&, int &); //BNP = Borrar numeros de la pila
int main (){ Nodo *pila = NULL; int Num , op ,Numero; int i = 0; while (op != 4){ system("cls"); cout << "1 - Ingrese datos a la pila" << endl; cout << "2 - Ver el listado de los datos en la pila " << endl; cout << "3 - Eliminar un numero en la pila (Seleccione la posicion a eliminar) " << endl; cout << "4 - Salir del programa" << endl; cin >> op; switch (op){ case 1 : system("cls"); cout << "ingrese un numero a la pila " << endl; cin >> Num; INP(pila,Num); acu = acu+1; break; case 2: system("cls"); VNP(pila); getch(); break; case 3: system("cls"); cout << "Ingrese la posicion a eliminar" << endl; cin >> Num; BNP(pila,Num); getch(); break; case 4: break; default: break; } } }
void INP(Nodo *&pila, int dato ){ Nodo *NN = new Nodo(); // la doble N significa nuevo nodo NN->Numero = dato; NN->sgt = pila; pila = NN; cout <<"\nEl numero " << dato << " ha sido registrado en la pila " << endl; getch(); }
void VNP(Nodo *pila){ int aux,i = 0; cout << "Posicion " << " Numero registrado" << endl; while (pila != NULL){ cout << " " << i+0; cout << " "<< pila->Numero << endl; pila = pila ->sgt; i++; } }
|