Ybadoo - Soluções em Software Livre
Tutoriais
Programação Orientada a Objetos

Desenvolva uma classe chamada Dequeue para representar o tipo abstrato de dados deque, ou seja, onde os elementos podem ser inseridos e/ou removidos em ambas as extremidades da lista. Os elementos devem ser armazenados numa lista duplamente encadeada (doubly linked list) genérica. A classe deve possuir um construtor que receba como parâmetro a quantidade máxima de elementos a serem armazenados na lista duplamente encadeada. Estenda a classe Dequeue para implementar as classes Stack e Queue, para representar os tipos abstratos de dados pilha e fila, respectivamente (Goodrich, 2007). Forneça métodos public para cada um dos itens a seguir da classe Queue: a) inserir um elemento na fila, retornando o sucesso ou a falha na operação; b) remover e retornar o elemento inserido na fila; c) retornar o elemento inserido na fila, sem removê-lo; d) retornar o número de elementos inseridos na fila; e) retornar se há ou não elementos inseridos na fila. Forneça métodos public para cada um dos itens a seguir da classe Stack: a) inserir um elemento na pilha, retornando o sucesso ou a falha na operação; b) remover e retornar o elemento inserido na pilha; c) retornar o elemento inserido na pilha, sem removê-lo; d) retornar o número de elementos inseridos na pilha; e) retornar se há ou não elementos inseridos na pilha.