Lab Deque - Implement a double ended queue
En repl.it, implementa un double ended queue (deque) de enteros usando una clase ArrayDeque
con los siguientes data members:
- un puntero a arreglo llamado
A
(usaremos arreglo dinamicamente reservado, su tamaño inicial será 4) - un entero llamado
myFront
que indicará el índice del frente del deque - un entero llamado
myBack
que indicará el índice donde debe ser grabado el próximo elemento que sea añadido a la cola del deque. - un entero llamado
allocationSize
para llevar cuenta del tamaño del arreglo reservado (y poder hacer operaciones modulares contra su valor).
Los member functions públicos serán:
- el constructor
- el destructor
push_front
,push_back
,pop_front
,pop_back
empty
: devuelvetrue
si el deque está vacío.front
: devuelve el elemento del frente sin modificar el estado del dequeback
: devuelve el elemento de la cola sin modificar el estado del deque- el assignment operator
Debes implementar un member function privado que haga resize cuando se invoque a push_front
o push_back
y el deque esté lleno. Usa una estratégia como la que estudiamos la semana pasada en clase.
En el cliente de tu programa, crea un objeto ArrayDeque
e invoca sus member functions
de manera que demuestres que están funcionando.
Crearé un link en Moodle para la entrega de este lab.