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++;
}
}
#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++;
}
}