Version:0.9 StartHTML:0000000105 EndHTML:0000004750 StartFragment:0000000152 EndFragment:0000004716
/******************************************************/
/*************** Isidro Pastor Jorda ******************/
/*************** Noemi Ruth Moya Hinojo ***************/
/******************************************************/
/****************** Telematica ************************/
/******************** FPII ****************************/
/****************** Practica 3 ************************/
/******************************************************/

#include <iostream.h>
#include <stdlib.h>
#include "PilaE.h"

/*****************************************************************************
* Funcion: Pila
* Descripcion: Constructor de clase Pila
*
*
*
* Parametros:
*
* Nombre        E/S       Descripcion
* ------       -----      -----------
*
*
*
*
* Valor devuelto:
*       Inicializa un objeto de la clase pila
*****************************************************************************/

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

/*****************************************************************************
* Funcion: Apilar
* Descripcion: Apila el elemento x en el objeto pila
*
*
*
* Parametros:
*
* Nombre        E/S       Descripcion
* ------       -----      -----------
*    x           E        Elemento a apilar en el objeto pila
*
*
*
* Valor devuelto:
*       bool, cierto si se puede apilar, falso en caso contrario
*****************************************************************************/

bool Pila::Apilar (int x)
{
    bool ok;

    if(top == TALLAMAX -1)
        ok = false;
    else
    {
        ok = true;
        Datos[top + 1] = x;
        top++;
    }

    return (ok);
};

/*****************************************************************************
* Funcion: Desapilar
* Descripcion: Desapila el primer elemento del objeto pila que hace la llamada
*
*
*
* Parametros:
*
* Nombre        E/S       Descripcion
* ------       -----      -----------
*
*
*
*
* Valor devuelto:
*       Bool, cierto si se ha podido desapilar, falso en caso contrario
*****************************************************************************/

bool Pila::Desapilar()
{
    bool ok;

    if(PilaVacia())
        ok = false;

    else
    {
        ok = true;
        top --;
    }
    return (ok);
};

/*****************************************************************************
* Funcion: CimaPila
* Descripcion: Almacena en el valor pasado como parametro el valor del primer
*              elemento del objeto pila que hace la llamada
*
*
*
* Parametros:
*
* Nombre        E/S       Descripcion
* ------       -----      -----------
*  res          E/S        Donde almacenaremos el valor de la cima de la pila
*
*
*
* Valor devuelto:
*       Bool, cierto si se ha podido asignar la cima, falso en caso contrario
*****************************************************************************/

bool Pila::CimaPila (int & res)
{
    bool ok;

    if(PilaVacia())
        ok = false;

    else
    {
        res = Datos[top];
        ok = true;
    }

    return (ok);
};

/*****************************************************************************
* Funcion: PilaVacia
* Descripcion: Nos dira si en el objeto pila que hace la llamada hay elementos
*              o por el contrario esta vacia
*
*
*
* Parametros:
*
* Nombre        E/S       Descripcion
* ------       -----      -----------
*
*
*
*
* Valor devuelto:
*       bool, cierto si la pila esta vacia, falso en caso contrario
*****************************************************************************/


bool Pila::PilaVacia (void)
{
    return(top == -1);
};