EjercicioListaSimple

=Ejercicio Lista=

**Objetivo**
El principal objetivo de esta práctica es contrastar el TAD Lista (de objetos con cursor) en C++ que vamos a hacer aquí con la lista sin TAD y en C del curso pasado. Además de practicar con el manejo de memoria dinámica con los operadores new y delete de C++.

Enunciado
Diseñar el TAD Lista de objetos con cursor con la siguiente interfaz:
 * 1) size: Número de elementos de la lista.
 * 2) empty: Comprueba si una lista se encuentra vacía
 * 3) reset: Situar el cursor de la lista en el primer elemento, si existe.
 * 4) next: Situar el cursor de la lista en el siguiente elemento, si existe.
 * 5) get: Observador del elemento sobre el que se encuentra el cursor. Debe devolver una referencia al elemento
 * 6) setCursor(int pos): Coloca el cursor en el elemento indicado
 * 7) insert(const Type &T): Inserta un elemento en la posición actual del cursor
 * 8) insertBegin(const Type &T): Inserción de un elemento al principio de la lista. El cursor queda en el elemento insertado.
 * 9) insertEnd(const Type &T): Inserción de un elemento al final de la lista. El cursor queda en el elemento insertado.
 * 10) remove: Borrado del elemento sobre el que se encuentre el cursor. El cursor queda en el elemento siguiente.
 * 11) clear: Elimina todos los elementos de la lista.

El constructor inicializará la Lista y el destructor debe borrar todos los elementos de la Lista y liberar la memoria utilizada por ésta.

Se deben considerar los siguientes aspectos:
 * Se creará una clase en C++ denominada List, que mantenga tres punteros privados: _head, que apunta al comienzo de la lista, _tail que apunta al fin de la lista, y _cursor que apunta al elemento actual de la lista. Los tres se inicializan en el constructor.
 * La clase List mantendrá un entero (_nElements) que en todo momento almacenará el número de elementos en la lista.
 * La definición de la clase irá en el fichero list.h y se hará uso de plantillas.
 * Se realizará un programa de prueba (menulista.cpp), que desde la consola permitirá acceder a cada una de las operaciones anteriores además de permitir visualizar todos los elementos de la lista en pantalla para comprobar el estado de la lista cuando se desee.