Durante esta actividad, los alumnos serán capaces de:
A partir del código de la clase LinkedList<T>
(lista circular doblemente encadenada) elaborado durante las sesiones de clase, añade los métodos que se describen a continuación. Antes de la definición de cada método debes incluir un comentario que indique su correspondiente complejidad de tiempo.
Método | Descripción |
---|---|
bool is_empty() const
|
Regresa true si esta lista está vacía, o false en caso contrario.
|
bool contains(T data) const
|
Regresa true si data es un elemento contenido en esta lista, o false en caso contrario.
|
T get(int index) const
|
Regresa el elemento contenido en el índice especificado de esta lista. El primer elemento está en el índice 0. Lanza una excepción std::out_of_range si index está fuera de rango (es menor a 0 o mayor o igual al número de elementos de la lista).
|
T remove_front()
|
Remueve y devuelve el elemento de la parte frontal de esta lista. Lanza una excepción std::length_error si la lista está vacía.
|
T remove_back()
|
Remueve y devuelve el elemento de la parte de atrás de esta lista. Lanza una excepción std::length_error si la lista está vacía.
|
void extend(
|
Añade al final de esta lista todos los elementos contenidos en la lista other .
|
Modifica el archivo linked_list_test.cpp
para probar todos los nuevos métodos. Corre también el programa usando valgrind
para verificar que no haya problemas en el uso de memoria.
Coloca en un comentario en la parte superior de cada archivo fuente (linked_list.h
y linked_list_test.cpp
) la información personal de los autores (matrícula y nombre). Coloca ambos archivos en un archivo ZIP llamado practica9.zip
y entrégalo como se indica a continuación.
To deliver the practica9.zip
file, please provide the following information:
Solo es necesario que lo entregue un miembro del equipo.