Beruflich Dokumente
Kultur Dokumente
Resolucin de Pila
#include <iostream>
#define MAX_ELEM 5
using namespace std;
class Bipila{
char mElementos[MAX_ELEM];
int mTopeA,mTopeB;
public:
Bipila();
/**Para la pila A*/
void InsertarPilaA(char dato);
char ExtraerPilaA();
bool EstaVaciaPilaA();
/**Para la pila B*/
void InsertarPilaB(char dato);
char ExtraerPilaB();
bool EstaVaciaPilaB();
bool EstaLlenaPilaB();
};
2
Estructura de Datos y Algoritmos
Bipila::Bipila(){
mTopeA=-1;
mTopeB=MAX_ELEM;
}
void Bipila::InsertarPilaA(char dato){
if(mTopeA+1==mTopeB)
cout<<"La PilaA esta Llena\n";
else{
mTopeA++;
mElementos[mTopeA]=dato;
cout<<"Usted ha insertado en la PilaA "<<mElementos[mTopeA]<<endl;
}
}
char Bipila::ExtraerPilaA(){
char dat;
if(mTopeA==-1)
cout<<"La PilaA esta Vacia\n";
else{
dat=mElementos[mTopeA];
mTopeA--;
cout<<"Usted a Extraido de la PilaA "<<dat<<endl;
return dat;
}
}
bool Bipila::EstaVaciaPilaA(){
if(mTopeA<=-1)
return true;
else
false;
}
void Bipila::InsertarPilaB(char dato){
if(mTopeA+1==mTopeB)
cout<<"La pilaB esta llena\n";
else{
mTopeB--;
mElementos[mTopeB]=dato;
cout<<"Usted hha insertado en la PilaB "<<mElementos[mTopeB]<<endl;
}
}
char Bipila::ExtraerPilaB(){
char da;
if(mTopeB>=MAX_ELEM)
cout<<"La PilaB esta Vacia\n";
else{
da=mElementos[mTopeB];
mTopeB++;
cout<<"Usted a EXtraido de la pilaB "<<da<<endl;
3
Estructura de Datos y Algoritmos
}
}
bool Bipila::EstaVaciaPilaB(){
if(mTopeB>=MAX_ELEM)
return true;
else
return false;
}
bool Bipila::EstaLlenaPilaB(){
if(mTopeA+1==mTopeB)
return true;
else
return false;
}
int main()
{
Bipila pila;
pila.InsertarPilaA('C');
pila.ExtraerPilaA();
pila.ExtraerPilaA();
pila.InsertarPilaB('O');
pila.InsertarPilaB('R');
pila.InsertarPilaB('R');
pila.InsertarPilaB('A');
pila.InsertarPilaB('C');
pila.InsertarPilaB('R');
pila.InsertarPilaA('B');
return 0;
}
2. Implemente la clase cola para el almacenamiento de nmeros enteros (int) con sus
funciones usuales: Insertar, Extraer, EstaVacia y EstaLlena, y con la misma estrategia
de administracin circular de datos, no obstante, se requiere que la insercin y
extraccin se efecte iniciando desde la primera desde la ltima posicin del arreglo
(mElementos[MAX_ELE-1]) avanzando a la primera posicin (mElementos[0]), es decir
en sentido inverso al estudiado. No se debe emitir mensajes de error: en caso de la
insercin si no hay espacio en la cola (desbordamiento) simplemente no se inserta el
elemento ni se emite error; en caso de la extraccin, cuando la cola esta vacia no se
extrae ningn elemento en su lugar se retorna cero y tambin no se emite error.
Resolucin de cola
#include <iostream>
#define MAX_ELEMENT 3
using namespace std;
class Cola{
4
Estructura de Datos y Algoritmos
int contenido[MAX_ELEMENT];
int cabeza,ultimo,cantidad;
public:
Cola();
void insertar(int dat);
int extraer();
bool estaVacia();
bool estaLlena();
};
Cola::Cola(){
cabeza=MAX_ELEMENT-1;
ultimo=MAX_ELEMENT;
cantidad=0;
}
5
Estructura de Datos y Algoritmos