REPRESENTACIONES
C = Cola
C = {} Cola vacía
C={e1,e2,e3...en} Cola con n elementos
e es un elemento de la cola
e1 es el primer elemento
e2 es el segundo elemento
en es el ultimo elemento
ENCOLAR
Nombre: Encolar
Descripción: Permite insertar datos en la cola
Precondición: C = { }, e
C = {e1,e2 ,e3,…},e
Postcondición: Escribir Cola Vacia
C = {e1,e2 ,e3,…en +1}
SEUDOCÓDIGO
Encolar(struct nodoCola **prim int dat, struct nodoCola **ult)
Struct nodoCola *aux, *punt;
aux=new nodoCola;
si (aux=NULL)
escribir “Cola Vacia”
fin si
aux ->dato=dat
aux ->sig=NULL
si *prim=NULL
*prim=aux
*ult=aux
Sino
utl->sig=aux
ult=ult
Fin si
DESENCOLAR
Nombre: Desencolar
Descripción: Elimina elementos de la cola
Precondición: C = { }, e
C = {e1,e2 ,e3,…},e
Postcondición: Escribir Cola Vacia
C = {e1,e2 ,e3,…en -1}
SEUDOCÓDIGO
Desencolar(struct nodoCola **prim int dat, struct nodoCola **ult)
Struct nodoCola *aux;
si (aux=NULL)
escribir “Cola Vacia”
Sino
Escribir Elemento eliminado *prim->dato
Aux=*prim
*prim=aux->sig
Delete=aux
Si (*prim=NULL)
Ult = NULL
Fin si
Fin si
PROGRAMA PRINCIPAL
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
//Definicion de la Estructura
struct nodoCola
{
int dato;
nodoCola *sig;};
struct nodoCola
{
int dato;
nodoCola *sig;};
//Menu principal
int menu()
{
int opc;
clrscr();
cout<<" MENU PRINCIPAL";
cout<<"\n1. Inicializar Cola";
cout<<"\n2. Encolar (push)";
cout<<"\n3. Recorrer Cola";
cout<<"\n4. Desencolar (pop)";
cout<<"\n5. Invertir Cola";
cout<<"\n6. Verificar Cola Vacia";
cout<<"\n7. Destruir Cola";
cout<<"\n8. Salir";
cout<<"\nOpcion: ";
cin>>opc;
return opc;
}
int menu()
{
int opc;
clrscr();
cout<<" MENU PRINCIPAL";
cout<<"\n1. Inicializar Cola";
cout<<"\n2. Encolar (push)";
cout<<"\n3. Recorrer Cola";
cout<<"\n4. Desencolar (pop)";
cout<<"\n5. Invertir Cola";
cout<<"\n6. Verificar Cola Vacia";
cout<<"\n7. Destruir Cola";
cout<<"\n8. Salir";
cout<<"\nOpcion: ";
cin>>opc;
return opc;
}
//Definicion de funciones
void inicializar(struct nodoCola **, struct nodoCola **);
void desencolar(struct nodoCola **, struct nodoCola **);
void recorrer(struct nodoCola **, struct nodoCola **);
void encolar(struct nodoCola **, struct nodoCola **, int x);
void invertir(struct nodoCola **, struct nodoCola **);
void verificar(struct nodoCola **, struct nodoCola **);
void destruir(struct nodoCola **, struct nodoCola **);
void inicializar(struct nodoCola **, struct nodoCola **);
void desencolar(struct nodoCola **, struct nodoCola **);
void recorrer(struct nodoCola **, struct nodoCola **);
void encolar(struct nodoCola **, struct nodoCola **, int x);
void invertir(struct nodoCola **, struct nodoCola **);
void verificar(struct nodoCola **, struct nodoCola **);
void destruir(struct nodoCola **, struct nodoCola **);
//Funcion recorrer
void recorrer(struct nodoCola **prim, struct nodoCola **ult)
{ clrscr();
struct nodoCola *aux;
if(*prim==NULL)
cout<<"\nCola Vacia. ";
else
{
aux=*ult;
while(aux!=NULL)
{
cout<<"Elemento: "<<aux->dato<<"\n";
aux=aux->sig;
}
}
getch();
}
void recorrer(struct nodoCola **prim, struct nodoCola **ult)
{ clrscr();
struct nodoCola *aux;
if(*prim==NULL)
cout<<"\nCola Vacia. ";
else
{
aux=*ult;
while(aux!=NULL)
{
cout<<"Elemento: "<<aux->dato<<"\n";
aux=aux->sig;
}
}
getch();
}
//Funcion inicializar
void inicializar(struct nodoCola **prim, struct nodoCola **ult)
{ clrscr();
*prim=NULL;
*ult=NULL;
cout<<"\nCola Inicializada.";
getch();
}
void inicializar(struct nodoCola **prim, struct nodoCola **ult)
{ clrscr();
*prim=NULL;
*ult=NULL;
cout<<"\nCola Inicializada.";
getch();
}
//Funcion encolar
void encolar(struct nodoCola **prim, struct nodoCola **ult, int dat)
{ clrscr();
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
{ aux->sig=*ult;
*ult=aux;
}
}
void encolar(struct nodoCola **prim, struct nodoCola **ult, int dat)
{ clrscr();
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
{ aux->sig=*ult;
*ult=aux;
}
}
//Funcion desencolar
void desencolar(struct nodoCola **prim, struct nodoCola **ult)
{ clrscr();
//int v;
struct nodoCola *aux;
if(*prim==NULL)
cout<<"Cola Vacia";
else
{
aux=*prim;
cout<<"Elemento eliminado: "<<(*prim)->dato;
*prim=aux->sig;
//v=aux->dato;
delete aux;
}
if(*prim==NULL)
*ult=NULL;
getch();
}
//Funcion invertir
void invertir(struct nodoCola **prim, struct nodoCola **ult)
{ clrscr();
struct nodoCola *aux;
int inv;
if(*prim==NULL)
cout<<"\nCola Vacia. ";
else
{
inv=(*prim)->dato;
(*prim)->dato=(*ult)->dato;
(*ult)->dato=inv;
void desencolar(struct nodoCola **prim, struct nodoCola **ult)
{ clrscr();
//int v;
struct nodoCola *aux;
if(*prim==NULL)
cout<<"Cola Vacia";
else
{
aux=*prim;
cout<<"Elemento eliminado: "<<(*prim)->dato;
*prim=aux->sig;
//v=aux->dato;
delete aux;
}
if(*prim==NULL)
*ult=NULL;
getch();
}
//Funcion invertir
void invertir(struct nodoCola **prim, struct nodoCola **ult)
{ clrscr();
struct nodoCola *aux;
int inv;
if(*prim==NULL)
cout<<"\nCola Vacia. ";
else
{
inv=(*prim)->dato;
(*prim)->dato=(*ult)->dato;
(*ult)->dato=inv;
}
getch();
}
//Funcion verificar
void verificar(struct nodoCola **prim, struct nodoCola **ult)
{ clrscr();
struct nodoCola *aux;
if(*prim==NULL)
cout<<"\nCola Vacia. ";
else
{
cout<<"La Cola esta con Elementos ";
getch();
}
//Funcion verificar
void verificar(struct nodoCola **prim, struct nodoCola **ult)
{ clrscr();
struct nodoCola *aux;
if(*prim==NULL)
cout<<"\nCola Vacia. ";
else
{
cout<<"La Cola esta con Elementos ";
}
getch();
}
getch();
}
//Funcion destruir
void destruir(struct nodoCola **prim, struct nodoCola **ult)
{ clrscr();
struct nodoCola *aux;
if(*prim==NULL)
{
cout<<"Cola Vacia";
void destruir(struct nodoCola **prim, struct nodoCola **ult)
{ clrscr();
struct nodoCola *aux;
if(*prim==NULL)
{
cout<<"Cola Vacia";
}
else
{
do
{
aux=*prim;
*prim=(*prim)->sig;
}
while (*prim!=NULL);
if (*prim==NULL)
*ult=NULL;
cout<<"Cola Destruida";
}
getch();
}
{
do
{
aux=*prim;
*prim=(*prim)->sig;
}
while (*prim!=NULL);
if (*prim==NULL)
*ult=NULL;
cout<<"Cola Destruida";
}
getch();
}
//Cuerpo 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:{recorrer(&prim, &ult);break;}
case 4:{desencolar(&prim, &ult);break;}
case 5:{invertir(&prim, &ult);recorrer(&prim, &ult);break;}
case 6:{verificar(&prim, &ult);break;}
case 7:{destruir(&prim, &ult);break;}
}
}while(opc!=8);
return 0;
}
No hay comentarios:
Publicar un comentario