jueves, 14 de octubre de 2010
EJERCICIO EN CLASE
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
// Estructura
struct nodoCola
{
int dato;
nodoCola *sig;
};struct nodoCola *ult;
//Menu
int menu()
{
int op;
clrscr();
cout<<"\n\t\tMENU PRINCIPAL";
cout<<"\n\n1.Inicializar cola";
cout<<"\n2. Encolar";
cout<<"\n3. Desencolar";
cout<<"\n4. Recorrer";
cout<<"\n5. Invertir Contenidos";
cout<<"\n6. Verificar Estado de la Cola";
cout<<"\n7. Detruir Cola";
cout<<"\n8. Salir";
cout<<"\n\n\t\t--> Elija Opcion: ";
cin>>op;
return op;
}
//Definicion de funciones
void inicializar(struct nodoCola **, struct nodoCola **);
void desencolar(struct nodoCola **,struct nodoCola **);
void recorrer(struct nodoCola **, struct nodoCola **,int x);
void encolar(struct nodoCola **, struct nodoCola **);
void verificar(struct nodoCola**,struct nodoCola **);
void destruir(struct nodoCola**,struct nodoCola **);
//Funcion inicializar
void inicializar(struct nodoCola **prim,struct nodoCola **ult)
{ clrscr();
*prim=NULL;
cout<<"\nCola Inicializada.";
getch();
}
//Funcion Encolar
void encolar(struct nodoCola **prim, struct nodoCola **ult,int dat)
{
struct nodoCola *aux;
aux=new nodoCola;
if(aux==NULL)
{
cout<<"\nMemoria Insuficiente. ";
getch();
}
aux->dato=dat;
aux->sig=NULL;
if(*prim==NULL)
{ *prim=aux;
*ult=aux;
}
else
{ (*ult)->sig=aux;
*ult= aux;
}
getch();
}
//Funcion Desencolar
void desencolar(struct nodoCola **prim, struct nodoCola **ult)
{ clrscr();
struct nodoCola *aux;
if(*prim==NULL)
cout<<"COLA Vacia";
else
{
aux=*prim;
cout<<"Elemento eliminado: "<<(*prim)->dato;
*prim=aux->sig;
delete aux;
}
getch();
}
//Funcion recorrer
void recorrer(struct nodoCola **prim, struct nodoCola **ult,int dato)
{clrscr();
struct nodoCola *aux;
if(*prim==NULL)
cout<<"\nCOLA Vacia. ";
else
{
aux=*prim;
while(aux!=NULL)
{
cout<<"Elemento: "<<aux->dato<<"\n";
aux=aux->sig;
}
}
getch();
}
// Inverttir Contenidos
void invertir(struct nodoCola **prim, struct nodoCola **ult)
{
int dat;
if(*prim==NULL)
cout<<"COLA Vacia";
else
{
cout<<"\n\n\nPrimer dato ingresado : "<<(*prim)->dato<<"\t";
cout<<"Ultimo dato ingresado: "<<(*ult)->dato<<"\n";
dat=(*ult)->dato;
(*ult)->dato=(*prim)->dato;
(*prim)->dato=dat;
cout<<"\n\n\n\t\t ***LOS DATOS INVERTIDOS SON***: ";
cout<<"\n\nPrimer dato ingresado: "<<(*prim)->dato<<"\t";
cout<<"\tUltimo dato ingresado: "<<(*ult)->dato<<"\n";
}
getch();
}
//Funcion Verificar stado de la Cola
void verificar(struct nodoCola **prim,struct nodoCola **ult)
{ clrscr();
struct nodoCola *aux;
if(*prim==NULL)
cout<<"\n\tCola Vacia";
else
{ cout<<"\n\tLa Cola Contiene Elementos ";
}
getch();
}
//Funcion Destruir toda la Cola
void destruir(struct nodoCola **prim, struct nodoCola **ult)
{
struct nodoCola *aux;
if(*ult==NULL)
cout<<"\n\tCola Vacia. ";
else
do
{ aux=*prim;
*prim=(*prim)->sig;
delete aux;
}
while (*prim!=NULL);
cout<<"\n\tLa Cola esta Destruida";
getch();
}
// principal
int main()
{
struct nodoCola *prim,*ult;
int dat,opc;
do
{ opc=menu();
switch(opc)
{
case 1:{inicializar(&prim, &ult);break;}
case 2:{ cout<<"\nEntre el dato: ";
cin>>dat;
encolar(&prim, &ult,dat);
break;
}
case 3:{desencolar(&prim, &ult);break;}
case 4: {recorrer(&prim, &ult,dat);break;}
case 5:{invertir(&prim, &ult);break;}
case 6:{verificar(&prim, &ult);break;}
case 7:{destruir(&prim, &ult);break;}
}
}
while(opc!=8);
return 0;
}
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario