COLAS EN C++
Lo mejor en colas "En C++" aclarando
Aqui les dejo el codigo fuente del manejo de colas
Vienen todas sus funciones por separado como borrar, push, inicializar, ETC.
DESCARGAR EN .CPP
/*****************************************************************************
* Tarea: Colas C++ *
* Programador: Julio César Leyva Rodrirguez *
* Instituto Tecnonolgico de Los Mochis *
* HTTP://Shalom-now.blogspot.com *
*****************************************************************************
#include <conio.h>
#include <iostream.h>
#define max 100
typedef int tipodatocola;
typedef struct cola
{
tipodatocola *cola;
int frente;
int final;
};
//INICIALIZAR COLA
void inicializarcola(cola *inicializar)
{
inicializar->frente=max-1;
inicializar->final=-1;
gotoxy(40,5); cout<<"SE HA INICIALIZADO LA COLA";
}
//COLA LLENA
int colallena(cola *llena)
{
if(llena->final==llena->frente-1)
{
return(1);
}
else
{
return(0);
}
}
//COLA VACIA
int colavacia(cola *v)
{
if((v->frente==v->final) || (v->final==-1 && v->frente==max-1))
{
return(1);
}
else
{
return(0);
}
}
void push(cola *z)
{
if(z->final==max-1)
{
(z->final)=-1;
cout<<"Inserte el dato ";cin>>*(z->cola+z->final+1);
}
else
{
(z->final)++;
cout<<"Inserte el dato "; cin>>*(z->cola+z->final);
}
}
void insertar(cola *i)
{
tipodatocola cliente;
if(colallena(i)==1)
{
cout<<"La cola esta llena";
}
else
{
push(i);
}
}
tipodatocola pop(cola *c)
{
tipodatocola dato;
if(c->frente==max-1 && c->final>-1)
{
c->frente=0;
dato=*(c->cola+c->frente);
return(dato);
}
else
{
c->frente=c->frente+1;
dato=*(c->frente+c->cola);
return(dato);
}
}
void borrar(cola *borrar)
{
if(colavacia(borrar)==1)
{
cout<<"La cola esta vacia";
}
else
{
cout<<"Se ha eliminado el dato "<<pop(borrar);
}
}
void visualizarcola(cola *v)
{
if(colavacia(v)==1)
{
cout<<"No hay datos";
}
else
{
for(int x=v->frente; x<=v->final; x++)
{
if(x==max-1)
{
x=0;
}
gotoxy(x+20,25); cout<<*v->cola+1;
}
}
}
//MENU
void menu(cola *menu)
{
int op;
do
{
clrscr();
cout<<"Frente "<<menu->frente;
cout<<"\nFinal "<<menu->final;
cout<<"\nCola "<<(*menu->cola+menu->frente);
gotoxy(1,5); cout<<"MENU";
gotoxy(1,6); cout<<"1. INICIALIZAR";
gotoxy(1,7); cout<<"2. INSERTAR";
gotoxy(1,8); cout<<"3. BORRAR";
gotoxy(1,9); cout<<"ELIGA UNA OPCION [ ]";
gotoxy(20,9); cin>>op;
switch(op)
{
case 1:
inicializarcola(menu);
getch();
break;
case 2:
insertar(menu);
getch();
break;
case 3:
borrar(menu);
getch();
break;
case 4:
visualizarcola(menu);
getch();
break;
}
}
while(op!=5);
}
main()
{
cola colita;
tipodatocola cola[max];
colita.cola=&cola[0];
menu(&colita);
}
* Tarea: Colas C++ *
* Programador: Julio César Leyva Rodrirguez *
* Instituto Tecnonolgico de Los Mochis *
* HTTP://Shalom-now.blogspot.com *
*****************************************************************************
#include <conio.h>
#include <iostream.h>
#define max 100
typedef int tipodatocola;
typedef struct cola
{
tipodatocola *cola;
int frente;
int final;
};
//INICIALIZAR COLA
void inicializarcola(cola *inicializar)
{
inicializar->frente=max-1;
inicializar->final=-1;
gotoxy(40,5); cout<<"SE HA INICIALIZADO LA COLA";
}
//COLA LLENA
int colallena(cola *llena)
{
if(llena->final==llena->frente-1)
{
return(1);
}
else
{
return(0);
}
}
//COLA VACIA
int colavacia(cola *v)
{
if((v->frente==v->final) || (v->final==-1 && v->frente==max-1))
{
return(1);
}
else
{
return(0);
}
}
void push(cola *z)
{
if(z->final==max-1)
{
(z->final)=-1;
cout<<"Inserte el dato ";cin>>*(z->cola+z->final+1);
}
else
{
(z->final)++;
cout<<"Inserte el dato "; cin>>*(z->cola+z->final);
}
}
void insertar(cola *i)
{
tipodatocola cliente;
if(colallena(i)==1)
{
cout<<"La cola esta llena";
}
else
{
push(i);
}
}
tipodatocola pop(cola *c)
{
tipodatocola dato;
if(c->frente==max-1 && c->final>-1)
{
c->frente=0;
dato=*(c->cola+c->frente);
return(dato);
}
else
{
c->frente=c->frente+1;
dato=*(c->frente+c->cola);
return(dato);
}
}
void borrar(cola *borrar)
{
if(colavacia(borrar)==1)
{
cout<<"La cola esta vacia";
}
else
{
cout<<"Se ha eliminado el dato "<<pop(borrar);
}
}
void visualizarcola(cola *v)
{
if(colavacia(v)==1)
{
cout<<"No hay datos";
}
else
{
for(int x=v->frente; x<=v->final; x++)
{
if(x==max-1)
{
x=0;
}
gotoxy(x+20,25); cout<<*v->cola+1;
}
}
}
//MENU
void menu(cola *menu)
{
int op;
do
{
clrscr();
cout<<"Frente "<<menu->frente;
cout<<"\nFinal "<<menu->final;
cout<<"\nCola "<<(*menu->cola+menu->frente);
gotoxy(1,5); cout<<"MENU";
gotoxy(1,6); cout<<"1. INICIALIZAR";
gotoxy(1,7); cout<<"2. INSERTAR";
gotoxy(1,8); cout<<"3. BORRAR";
gotoxy(1,9); cout<<"ELIGA UNA OPCION [ ]";
gotoxy(20,9); cin>>op;
switch(op)
{
case 1:
inicializarcola(menu);
getch();
break;
case 2:
insertar(menu);
getch();
break;
case 3:
borrar(menu);
getch();
break;
case 4:
visualizarcola(menu);
getch();
break;
}
}
while(op!=5);
}
main()
{
cola colita;
tipodatocola cola[max];
colita.cola=&cola[0];
menu(&colita);
}
Comentarios
Publicar un comentario