Ejemplo FIFO (estructura + clase)
Completion requirements
/*
* clases_que maneja una pila FIFO utilizando lista enlazada simple
*
* Copyright 2021 Germán Andrés Xander
*
*/
#include <iostream>
using namespace std;
struct datos{
float x;
struct datos *sig;
};
class driver{
private:
datos *lista=NULL;
public:
void insertar();
void sacar();
void mostrar();
};
int main(int argc, char *argv[]) {
char selec;
driver fifo;
do{
cout<<endl<<"|| -Menú- ||"<<endl;
cout<<"seleccione:"<<endl;
cout<<"1-insertar"<<endl;
cout<<"2-sacar"<<endl;
cout<<"3-mostrar"<<endl;
cout<<"s-salir"<<endl;
cin>>selec;
switch(selec) {
case '1':
fifo.insertar();
break;
case '2':
fifo.sacar();
break;
case '3':
fifo.mostrar();
break;
default:
if(selec!='s' && selec!='S'){
cout<<"opcion incorrecta, reingrese"<<endl;
}
}
}while(selec!='s' && selec!='S');
return 0;
}
void driver::insertar(){
float n;
cout<<endl<<"ingrese un numero"<<endl;
cin>>n;
datos *nuevo_nodo=new datos;
nuevo_nodo->x=n;
nuevo_nodo->sig=lista;
lista=nuevo_nodo;
}
void driver::sacar(){
if(lista){
datos *aux_borrar=lista;
datos *anterior=NULL;
while(aux_borrar->sig){
anterior=aux_borrar;
aux_borrar=aux_borrar->sig;
}
delete aux_borrar;
if(anterior){
anterior->sig=NULL;
}else{
lista=NULL;
}
}
}
void driver::mostrar(){
datos *copia=lista;
cout<<endl<<"lista FIFO:"<<endl;
while(copia){
cout<<copia->x;
copia=copia->sig;
if(copia){
cout<<" --> ";
}else{
cout<<" |";
}
}
cout<<endl;
}
Last modified: Friday, May 28, 2021, 8:35 AM