[ Foro de C++ ]

Estrutura de datos con arreglos y pilas en C++

11-Jul-2022 02:30
Invitado (Ruben Rodriguez)
0 Respuestas

Hola a todos un saludo, tengo un pequeño probemla para con el codigo que adjuntare a continuacion, me pide hacer lo siguiente:
Representar e implementar una Pila de 50 ítems incluyendo las funciones: apilar, desapilar, cantidad de elementos, pila vacía, pila llena, se debe utilizar arreglos.
Adjunto codigo de lo que llevo hecho pero creo que no lo tengo muy claro como introducir el menu con las funciones e introducirle arreglos.
Me vendrias bien una explicacion detallada o un codigo mejor que el que hice actualmente.


#include<iostream>
#include<conio.h>

using namespace std;

struct Nodo{
int dato;
Nodo *siguiente;
};

void agregarPila(Nodo *&,int); //prototipo
void sacarPila(Nodo *&, int &);

int main(){
Nodo *pila = NULL;
int Dato;

cout<<"Digite un numero: ";
cin>>Dato;
agregarPila(pila,Dato);

cout<<"Digite otro numero: ";
cin>>Dato;
agregarPila(pila,Dato);

cout<<"\nSacando los elementos de la pila: ";
while(pila != NULL){ //Mientras no sea el final de la pila
sacarPila(pila, Dato);
if(pila != NULL){
cout<<Dato<<" , ";
}
else{
cout<<Dato<<" , ";
}
}


getch();
return 0;
}

void agregarPila(Nodo *&pila, int n){
Nodo *nuevo_nodo = new Nodo(); //1. Reservar memoria para un nodo
nuevo_nodo->dato = n; //2. Igualar el dato que el usuario esta enviando y ponerlo correctamente en el nodo
nuevo_nodo->siguiente = pila; //3. Poner el puntero e igualarlo a pila
pila = nuevo_nodo; //4. Igualar pila al nuevo nodo

cout<<"\nElemento "<<n<<" agregado a Pila correctamente"<<endl;

}
void sacarPila(Nodo *&pila, int &n){
Nodo *aux = pila; //1. Crear una variable aux de tipo nodo
n = aux->dato; //2. Igualar el n a aux->dato
pila = aux -> siguiente;//3. Pasar pila a siguiente nodo
delete aux; //4. Eliminar aux
}




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...