Vous êtes sur la page 1sur 4

#include <iostream>

#include <cstdlib>
#include <conio.h>
#include <windows.h>
#include <string.h>
using namespace std;
//=====================================================================
=========
struct nodo{
string dato;
nodo *siguiente;
};
nodo *nuevo;
nodo *cabeza = NULL;
nodo *auxiliar;
nodo *anterior;
//=====================================================================
=========
struct nodo* crear_nodo(){
string dato;
cout << "\t\t\tIngrese el Dato a Insertar ---> "; cin >> dato;
nuevo = new(nodo);
nuevo->dato = dato;
nuevo->siguiente = NULL;
return nuevo;
}
//=====================================================================
=========
void insertar_final_cola_lifo(){
auxiliar = cabeza;
nuevo = crear_nodo();
// Cuando la lista este vacia coloca al elemento al inicio
if(cabeza == NULL){
nuevo->siguiente = cabeza;
cabeza = nuevo;
}
// Sino, la coloca al final
else{
while(auxiliar->siguiente != NULL){
auxiliar = auxiliar->siguiente;
}
auxiliar->siguiente = nuevo;
}
cout<<"\t\t\t----------------------------------------------------------------------"<<endl;
}
//=====================================================================
=========
void eliminar_final_cola_lifo(){
cout<<endl<<"\t\t\t\t\t\t.: ELIMINAR EN COLA LIFO :."<<endl;
cout<<"\t\t\t\t\t\t---------------------------"<<endl<<endl;
auxiliar = cabeza;
anterior = cabeza;
while(auxiliar->siguiente != NULL){
anterior = auxiliar;
auxiliar = auxiliar->siguiente;
}
anterior->siguiente = NULL;
}
//=====================================================================
=========
void mostrar_cola_lifo(){
auxiliar = cabeza;
cout<<endl<<"\t\t\t\t\t\t.: MOSTRAR COLA LIFO :."<<endl;
cout<<"\t\t\t\t\t\t-----------------------"<<endl;
cout<<endl;
cout << "\tCabeza ---> ";
while(auxiliar != NULL){
cout << auxiliar->dato;
cout << " ---> ";
auxiliar = auxiliar->siguiente;
}
cout << "NULL"<<endl;

cout<<endl<<"\t----------------------------------------------------------------------------------------------------"
<<endl<<endl;
}
//=====================================================================
=========
void mostrar_menu(){
cout<<endl<<"\t\t\t\t\t\t .: COLA LIFO :."<<endl;
cout<<"\t\t\t\t\t\t ---------------"<<endl;
cout<<endl;
cout<<"\t\t\t MENU"<<endl;
cout<<"\t\t ----------------------------"<<endl;
cout<<"\t\t 1. Insertar en cola LIFO"<<endl;
cout<<"\t\t 2. Eliminar en cola LIFO"<<endl;
cout<<"\t\t 3. Mostrar cola LIFO"<<endl;
cout<<"\t\t 4. Salir"<<endl;
cout<<"\t\t -------------------------------------------------"<<endl;
}
//=====================================================================
=========
bool EsNumero(char* x){
bool bandera = true;
//Comprobar si cada caracter es un numero o no
for(int i=0;i<strlen(x);i++){
if(isalpha(x[i])){
bandera = false;
break;
}
}
return bandera;
}
//=====================================================================
=========
int main(){
system("color 71");
int opcion_int;
char opcion_char[20];
do{
fflush(stdin);
mostrar_menu();
cout<<"\t\t Ingrese una opcion ---> "; cin.getline(opcion_char,20,'\n');
if(EsNumero(opcion_char)){
opcion_int = atoi(opcion_char);
switch(opcion_int){
case 1: {
int cantidad = 0;
system("cls");
cout<<endl<<"\t\t\t\t\t\t.: INSERTAR EN COLA LIFO
:."<<endl;
cout<<"\t\t\t\t\t\t---------------------------"<<endl<<endl;
cout<<"\t\t\tIngrese la cantidad de valores que desea
insertar (Min. 1 - Max. 10): "; cin>>cantidad;

cout<<endl<<"\t\t\t========================================================
=============="<<endl<<endl;
if(cantidad>0 && cantidad<11){
for(int i=0; i<cantidad; i++){
insertar_final_cola_lifo();
}
cout<<endl<<"\t\t\t\t\t Valores Insertados
Satisfactoriamente!"<<endl;

cout<<endl<<"\t\t\t========================================================
=============="<<endl;
cout<<endl<<"\t\t\t\t\tPresione cualquier tecla
para continuar . . . "; getch();
system("cls");
break;
}
else{
cout<<"\t\t\t\t\t Cantidad fuera del
rango!"<<endl;
cout<<endl<<"\t\t\t========================================================
=============="<<endl;
cout<<endl<<"\t\t\t\t\tPresione cualquier tecla
para continuar . . . "; getch();
system("cls");
break;
}
}
case 2: {
system("cls"); eliminar_final_cola_lifo();
cout<<"\t\t\t\t\t Valor Eliminado Satisfactoriamente!";
Sleep(1075); system("cls");
break;
}
case 3: {
system("cls"); mostrar_cola_lifo();
cout<<"\t\t\t\t\tPresione cualquier tecla para continuar . .
. "; getch(); system("cls");
break;
}
case 4: {
break;
}
default: {
cout<<"\t\t
-------------------------------------------------"<<endl;
cout<<"\t\t Opcion invalida!"<<endl<<endl;
cout<<"\t\t\t\t\tPresione cualquier tecla para continuar . .
. ";
getch();
system("cls");
break;
}
}
}
else{
cout<<"\t\t -------------------------------------------------"<<endl;
cout<<"\t\t Ingrese solo numeros del 1 al 4!"<<endl<<endl;
cout<<"\t\t\t\t\tPresione cualquier tecla para continuar . . . ";
getch();
system("cls");
}
} while(opcion_int != 4);
return 0;
}

Vous aimerez peut-être aussi