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
myFrontque indicará el índice del frente del deque - un entero llamado
myBackque indicará el índice donde debe ser grabado el próximo elemento que sea añadido a la cola del deque. - un entero llamado
allocationSizepara 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_backempty: devuelvetruesi 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.