0% encontró este documento útil (0 votos)
11 vistas6 páginas

Programa de Pilas

Programa pilas estructuras de datos

Cargado por

riosyeisonfabian
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
11 vistas6 páginas

Programa de Pilas

Programa pilas estructuras de datos

Cargado por

riosyeisonfabian
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 6

Asignatura:

Estructuras de Datos
NRC 60-69824

Estudiante:
Yeison Fabian Rios Montealegre

Docente:
José Gilberto Molina

Bogotá D.C Colombia


2024
Programa de Pilas – Insertar Borrar Mostrar Contar
Imágenes de ejecución:
1. Crear Pila:
Se ejecuta el programa y se selecciona la primera opción, por pantalla se ingresan
los datos de los 5 nodos a crear.

2. Eliminar Nodos de la pila:


Se ejecuta la segunda opción y se pide eliminar 2 nodos de la pila
3. Mostrar Datos:
Se selecciona la opción 3 para que muestre los datos que quedaron en la pila
posterior a la eliminación de los nodos en la anterior selección

4. Mostrar la cantidad de Nodos:


Se selecciona la opción 4 para mirar los nodos restantes en la pila
5. Salir del Programa:

Código del programa:


#include <iostream>
using namespace std;

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

void crearPila(Nodo*& pila, int cantidad);


void extraerNodos(Nodo*& pila, int cantidad);
void mostrar(Nodo* pila);
int contarNodos(Nodo* pila);
void menu();

int main() {
Nodo* pila = nullptr;
int opcion, cantidad, valor;

do {
menu();
cin >> opcion;

switch (opcion) {
case 1:
cout << "\n------------------------------------\n";
cout << "¿Cuantos nodos desea agregar?: ";
cin >> cantidad;
crearPila(pila, cantidad);
break;
case 2:
cout << "\n------------------------------------\n";
cout << "¿Cuantos nodos desea eliminar?: ";
cin >> cantidad;
if (cantidad > contarNodos(pila)) {
cout << "No es posible eliminar mas nodos de los que hay en la
pila." << endl;
} else {
extraerNodos(pila, cantidad);
}
break;
case 3:
cout << "\n------------------------------------\n";
mostrar(pila);
break;
case 4:
cout << "\n------------------------------------\n";
cout << "El numero de nodos en la pila es: " << contarNodos(pila) <<
endl;
break;
case 5:
cout << "\n------------------------------------\n";
cout << "Ha salido exitosamente del programa";
cout << "\n------------------------------------\n";
break;
default:
cout << "\n------------------------------------\n";
cout << "La opcion no es valida, intente de nuevo." << endl;
cout << "------------------------------------\n";
}

} while (opcion != 5);

return 0;
}

void crearPila(Nodo*& pila, int cantidad) {


for (int i = 0; i < cantidad; i++) {
Nodo* nuevo = new Nodo();
cout << "Ingrese el valor del nodo " << i+1 << ": ";
cin >> nuevo->dato;
nuevo->siguiente = pila;
pila = nuevo;
}
}

void extraerNodos(Nodo*& pila, int cantidad) {


for (int i = 0; i < cantidad; i++) {
if (pila != nullptr) {
Nodo* aux = pila;
pila = pila->siguiente;
delete aux;
cout << "Nodo eliminado." << endl;
}
}
}

void mostrar(Nodo* pila) {


if (pila == nullptr) {
cout << "La pila esta vacia." << endl;
} else {
Nodo* actual = pila;
cout << "Elementos de la pila:\n";
while (actual != nullptr) {
cout << "Valor: " << actual->dato << " | Direccion de memoria: " <<
actual << endl;
actual = actual->siguiente;
}
cout << endl;
}
}

int contarNodos(Nodo* pila) {


int contador = 0;
Nodo* actual = pila;
while (actual != nullptr) {
contador++;
actual = actual->siguiente;
}
return contador;
}

void menu() {
cout << "------------------ ";
cout << "\n MENU DE OPCIONES\n";
cout << "------------------ \n";
cout << "1| Crear pila\n";
cout << "2| Extraer nodos\n";
cout << "3| Mostrar datos\n";
cout << "4| Mostrar cantidad de nodos\n";
cout << "5| Salir\n";
cout << "\nSeleccione una opcion: ";

También podría gustarte