miércoles, 12 de marzo de 2008

[Codigo Fuente] Ejercicio 3 UT9


//#================================================================
//#Nombre:
//#Autor: Ernesto Lezcano
//#Descripcion:
//#================================================================
//# -------------------------[C O D E]-----------------------------
//#================================================================
#include <iostream>

const int TAM=50;

class Pila
{
public:
typedef int Valor;
Pila();
//Pila(Pila x);

bool Apilar(Valor);
bool Desapilar();
bool CimaPila(Valor &);
bool PilaVacia();
//void MostrarPila(void);
bool Primeros(int x, Pila p1);
bool Ultimos(int x, Pila p1);
private:
int cima;
Valor v[TAM];
};






#include <iostream.h>
#include "pila.h"

//#================================================================
//# -----------------------[Constructor]---------------------------
//#================================================================

Pila::Pila()
{
cima=-
1;
}

//#================================================================
//# --------------------------[Apilar]-----------------------------
//#================================================================

bool Pila::Apilar(Valor num)
{
bool apila;

if (cima == TAM)
{
apila=
false;
}
else

{
cima++;
v[cima]=num;
apila=
true;
}

return apila;
}

//#================================================================
//# ------------------------[Desapilar]----------------------------
//#================================================================

bool Pila::Desapilar()
{
bool desapila;

if (cima==-1)
{
desapila=
false;
}
else

{
desapila=
true;
cima--;
}
return desapila;
}

//#================================================================
//# -------------------------[CimaPila]----------------------------
//#================================================================

bool Pila::CimaPila(Valor &num)
{
bool cimapila;

if (PilaVacia())
{
cimapila=
false;
}
else

{
cimapila=
true;
num=v[cima];
}

return cimapila;
}

//#================================================================
//# -------------------------[PilaVacia]---------------------------
//#================================================================

bool Pila::PilaVacia()
{
return (cima == -1);
}
/*
//#================================================================
//# -----------------------[MostrarPila]---------------------------
//#================================================================

void Pila::MostrarPila()
{
for (int i=0; i<=cima; i++)
{
cout << v[i] << endl;
}
}
*/

//#================================================================
//# ---------------------[SubPilaPrimeros]-------------------------
//#================================================================


bool Pila::Primeros(int x, Pila p1)
{
int i;
bool primero=false;

if (!p1.PilaVacia())
{
for (i=0; i<x && i<p1.cima; i++)
v[i]=p1.v[i];
cima=x-
1;
primero=
true;
}

return primero;
}


//#================================================================
//# ---------------------[SubPilaUltimos]--------------------------
//#================================================================

bool Pila::Ultimos(int x, Pila p1)
{
int i;
bool ultimo=false;

if(!p1.PilaVacia()&&x<p1.cima)
{
for (i=p1.cima-x; i<p1.cima; i++)
{
v[i-x]=p1.v[i];
cout << v[i-x]<<endl;
}
cima=x-
1;
ultimo=
true;
}

return ultimo;
}


No hay comentarios: