C/Visual C - Ayuda con bicola en C++

 
Vista:

Ayuda con bicola en C++

Publicado por josmary (1 intervención) el 06/07/2007 13:23:26
Hola!! estoy toda enrredada con la bicola!! necesito q interactue con una pila, es decir, pasar cierta cant de elementos de la bicola a la pila y regresarlos a la misma posicion donde se encontraban. hasta ahora lo q tengo es la parte de la bicola, no se como hacer la relacion con la pila, esto es lo q tengo:

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
int cant;
class Bicola
{
private:
int frente,final;
int *arreglo;
public:
void insertar_frente(int);
void insertar_final(int);
int eliminar_frente();
int eliminar_final();
int ver_frente();
int ver_final();
void inicializar(){frente=final=-1;}
bool vacia();
bool llena();
Bicola()
{
arreglo=new int[cant];
frente=final=-1;
}
~Bicola(){}
};
void Bicola::insertar_frente(int dato)
{
if((frente==0)&&(final==cant-1)||(final+1==frente))
cout<<"ERROR OVERFLOW BICOLA LLENA.\n";
else
{
if(frente==-1)
frente=final=0;
else
{
if((frente>0)&&(frente-1!=final))
frente--;
else
{
if(final!=cant-1)
frente=cant-1;
}
}
arreglo[frente]=dato;
}
}
void Bicola::insertar_final(int dato)
{
if((frente==0)&&(final==cant-1)||(final+1==frente))
cout<<"ERROR OVERFLOW BICOLA LLENA.\n";
else
{
if(frente==-1)
frente=final=0;
else
{
if(final<cant-1)
final++;
else
final=0;
}
arreglo[final]=dato;
}
}
int Bicola::eliminar_final()
{
int dato;
if(frente==-1)
{
cout<<"ERROR UNDERFLOW LA BICOLA ESTA VACIA.\n";
exit(1);
}
else
{
dato=arreglo[final];
if(final==frente)
final=frente=-1;
else
final--;
}
return dato;
}
int Bicola::eliminar_frente()
{
int dato;
if(frente==-1)
{
cout<<"ERROR UNDERFLOW LA BICOLA ESTA VACIA.\n";
exit(1);
}
else
{
dato=arreglo[frente];
if(final==frente)
final=frente=-1;
else
if(frente<cant-1)
frente++;
else
frente=0;
}
return dato;
}
int Bicola::ver_frente()
{
int dato;
if(!vacia())
dato=arreglo[frente];
else
exit(1);
return dato;
}
int Bicola::ver_final()
{
int dato;
if(!vacia())
dato=arreglo[final];
else
exit(1);
return dato;
}

bool Bicola::vacia()
{
if(frente==-1)
return true;
else
return false;
}
bool Bicola::llena()
{
if((frente==0)&&(final==cant-1)||(final+1==frente))
return true;
else
return false;
}
main()
{
cout<<"ASIGNE TAMAÑO A LA BICOLA: ";cin>>cant;
Bicola bicola;
int opcion,valor;
do
{
clrscr();
cout<<"MENU PRINCIPAL\n";
cout<<"[1] Insertar al Final\n";
cout<<"[2] Insertar al Frente\n";
cout<<"[3] Eliminar al Final\n";
cout<<"[4] Eliminar al Frente\n";
cout<<"[5] Ver Frente de la Bicola\n";
cout<<"[6] Ver Final de la Bicola\n";
cout<<"[7] Verificar Bicola Llena\n";
cout<<"[8] Verificar Bicola Vacia\n";
cout<<"[9] Inicializar Bicola\n";
cout<<"[a] ver Bicola\n";
cout<<"[10] SALIR\n\n";
cout<<"OPCION: ";cin>>opcion;
clrscr();
switch(opcion)
{
case 1:
{
cout<<"Inserte entero: ";cin>>valor;
bicola.insertar_final(valor);
getch();
break;
}
case 2:
{
cout<<"Inserte entero: ";cin>>valor;
bicola.insertar_frente(valor);
getch();
break;
}
case 3:
{
cout<<"Valor Eliminado del Final: "<<bicola.eliminar_final();
getch();
break;
}
case 4:
{
cout<<"Valor Eliminado del Frente: "<<bicola.eliminar_frente();
getch();
break;
}
case 5:
{
if(bicola.vacia())
cout<<"La Bicola esta Vacia";
else
cout<<"Valor en la Frente de la Bicola: "<<bicola.ver_frente();
getch();
break;
}
case 6:
{
if(bicola.vacia())
cout<<"La Bicola esta Vacia";
else
cout<<"Valor en el Final de la Bicola: "<<bicola.ver_final();
getch();
break;
}
case 7:
{
if(bicola.llena())
cout<<"La Bicola esta llena";
else
cout<<"La Bicola aun no esta llena";
getch();
break;
}
case 8:
{
if(bicola.vacia())
cout<<"La Bicola esta Vacia";
else
cout<<"La Bicola no esta Vacia";
getch();
break;
}
case 9:
{
bicola.inicializar();
break;
}

}
}
while(opcion!=10);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con bicola en C++

Publicado por videlva (1 intervención) el 14/07/2007 03:38:33
PUDRÍTE SHE!!!!!!!!!!!!!!! ANDA A .....................
BUENO TE QUIERO BSOS AJAJAJJAA ¡¡¡¡¡¡¡VOS SOS UNA NEGRA SUCIA!!!! :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar