Version:0.9 StartHTML:0000000105 EndHTML:0000006134 StartFragment:0000000152 EndFragment:0000006100
/******************************************************/
/*************** Isidro Pastor Jorda ******************/
/*************** Noemi Ruth Moya Hinojo ***************/
/******************************************************/
/****************** Telematica ************************/
/******************** FPII ****************************/
/****************** Practica 4 ************************/
/******************************************************/
#include <iostream.h>
#include <stdlib.h>
#include "ColaD.h"
/*****************************************************************************
* Funcion: Cola
* Descripcion: Constructor de clase Cola
*
*
*
* Parametros:
*
* Nombre E/S Descripcion
* ------ ----- -----------
*
*
*
*
* Valor devuelto:
* Inicializa un objeto de la clase Cola
*****************************************************************************/
Cola::Cola()
{
inicio = NULL;
fin = NULL;
};
/*****************************************************************************
* Funcion: ~Cola
* Descripcion: Destructor de clase Cola
*
*
*
* Parametros:
*
* Nombre E/S Descripcion
* ------ ----- -----------
*
*
*
*
* Valor devuelto:
* Destruye el objeto de la clase Cola
*****************************************************************************/
Cola::~Cola()
{
while(!ColaVacia())
Desencolar();
};
/*****************************************************************************
* Funcion: Cola
* Descripcion: Constructor de copia de clase Cola
*
*
*
* Parametros:
*
* Nombre E/S Descripcion
* ------ ----- -----------
* c E/S Origen de la copia
*
*
*
* Valor devuelto:
* Hace una copia del objeto de la clase Cola
*****************************************************************************/
Cola::Cola(const Cola & c)
{
inicio = NULL;
fin = NULL;
Nodo *aux;
aux = c.inicio;
while ( aux != NULL )
{
Encolar( (aux->info) );
aux = aux->sig;
}
};
/*****************************************************************************
* Funcion: Encolar
* Descripcion: Inserta un elemento al objeto de clase Cola que hace la llamada.
*
*
*
* Parametros:
*
* Nombre E/S Descripcion
* ------ ----- -----------
* x E Dato introducido en la Cola
*
*
*
* Valor devuelto:
* True si ha podido encolar el dato en el objeto, false en caso contrario
*****************************************************************************/
bool Cola::Encolar(Dato x)
{
Nodo *aux;
aux = new Nodo;
aux -> info = x;
aux -> sig = NULL;
if(ColaVacia())
inicio = aux;
else
fin -> sig = aux;
fin = aux;
return(true);
};
/*****************************************************************************
* Funcion: Desencolar
* Descripcion: Elimina un elemento del objeto de clase Cola que hace la llamada.
*
*
*
* Parametros:
*
* Nombre E/S Descripcion
* ------ ----- -----------
*
*
*
*
* Valor devuelto:
* True si ha podido desencolar el dato en el objeto, false en caso contrario
*****************************************************************************/
bool Cola::Desencolar()
{
bool ok;
Nodo *aux;
if(ColaVacia())
ok = false;
else
{
ok = true;
if(inicio == fin)
{
delete inicio;
inicio = NULL;
fin = NULL;
}
else
{
aux = inicio;
inicio = inicio -> sig;
delete aux;
}
}
return(ok);
};
/*****************************************************************************
* Funcion: PrimeroCola
* Descripcion: Obtiene el primer elemento del objeto de clase Cola que hace la llamada.
*
*
*
* Parametros:
*
* Nombre E/S Descripcion
* ------ ----- -----------
* res E/S Variable donde almacenaremos el primer Dato de la Cola
*
*
*
* Valor devuelto:
* True si existe primer dato en el objeto, false en caso contrario.
*****************************************************************************/
bool Cola::PrimeroCola(Dato &res)
{
bool ok;
if(ColaVacia())
ok = false;
else
{
ok = true;
res = inicio -> info;
}
return(ok);
};
/*****************************************************************************
* Funcion: ColaVacia
* Descripcion: Nos indica si el objeto Cola que hace la llamada esta vacio.
*
*
*
* Parametros:
*
* Nombre E/S Descripcion
* ------ ----- -----------
*
*
*
*
* Valor devuelto:
* True si el objeto Cola esta vacia, false en caso contrario.
*****************************************************************************/
bool Cola::ColaVacia()
{
return(fin == NULL);
};