Version:0.9 StartHTML:0000000105 EndHTML:0000005221 StartFragment:0000000152 EndFragment:0000005187
/******************************************************/
/*************** Isidro Pastor Jorda ******************/
/*************** Noemi Ruth Moya Hinojo ***************/
/******************************************************/
/****************** Telematica ************************/
/******************** FPII ****************************/
/****************** Practica 3 ************************/
/******************************************************/
#include <iostream.h>
#include <stdlib.h>
#include "PilaD.h"
/*****************************************************************************
* Funcion: Pila
* Descripcion: Constructor de clase Pila
*
*
*
* Parametros:
*
* Nombre E/S Descripcion
* ------ ----- -----------
*
*
*
*
* Valor devuelto:
* Inicializa un objeto de la clase pila
*****************************************************************************/
Pila::Pila(void)
{
top = NULL;
};
/*****************************************************************************
* 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)
{
nodo *aux;
aux = new nodo;
aux -> Datos = x;
aux -> sig = top;
top = aux;
return (true);
};
/*****************************************************************************
* 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 (void)
{
bool ok;
nodo *aux;
if(PilaVacia())
ok = false;
else
{
aux = top;
top = top -> sig;
delete aux;
ok = true;
}
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
* ------ ----- -----------
* x 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 & x)
{
bool ok;
if(PilaVacia())
ok = false;
else
{
ok = true;
x = top -> Datos;
}
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 == NULL);
};
/*****************************************************************************
* Funcion: ~Pila
* Descripcion: Destructor de clase Pila
*
*
*
* Parametros:
*
* Nombre E/S Descripcion
* ------ ----- -----------
*
*
*
*
* Valor devuelto:
* Destruye la clase pila cuando termina su ambito de uso
*****************************************************************************/
Pila::~Pila()
{
nodo *aux;
while (!PilaVacia())
{
aux = top->sig;
delete top;
top = aux;
}
};