Pilhas são as mais simples de todas as estruturas de dados, ...

Próximas questões
Com base no mesmo assunto
Q2756013 Arquitetura de Software

Pilhas são as mais simples de todas as estruturas de dados, apesar de estar entre uma das mais importantes, na medida em que são usadas em uma gama de aplicações diferentes que incluem estruturas de dados muito mais sofisticadas. Uma pilha é uma coleção de objetos que são inseridos e retirados de acordo com o princípio de que “o último que entra é o primeiro que sai”.


Formalmente, uma pilha é um tipo abstrato de dados que suporta os seguintes métodos:


push(e) -> insere o objeto (e) no topo da pilha;

pop() -> remove o elemento que está no topo da

pilha e o retorna. Se a pilha estiver vazia retorna

um erro;

size( ) -> retorna o número de elementos da

pilha;

isEmpty( ) -> retorna um booleano indicando se

a pilha está vazia;

top() -> retorna o elemento que está no topo da

pilha sem retirá-lo. Se a pilha estiver vazia

retorna um erro.


Outra estrutura de dados fundamental é a fila. Ela é uma prima próxima da pilha, pois uma fila é uma coleção de objetos que são inseridos e removidos de acordo com o princípio de que “o primeiro que entra é o primeiro que sai”.


De maneira análoga à pilha, a fila também é um tipo abstrato de dados e suporta os seguintes métodos:


enqueue(e) -> insere o elemento (e) no fim da

fila;

dequeue() -> retira o elemento da frente da fila e

o retorna. Se a fila estiver vazia retorna um erro;

size() -> retorna o número de elementos na fila;

isEmpty() -> retorna um booleano indicando se

a fila está vazia;

front() -> retorna, mas não remove, o elemento

que está na frente da fila. Se a fila estiver vazia

retorna um erro;


(GOODRICH, M. T., Estruturas de Dados e Algoritmos em Java, 4 ed., Porto Alegre: Bookman, 2007, com adaptações).


As duas tabelas a seguir apresentam operações com pilhas e filas sendo executadas.


A primeira mostra uma série de operações de pilha e seus efeitos sobre uma pilha de números inteiros inicialmente vazia.


A segunda tabela mostra uma série de operações e seus efeitos sobre uma fila de números inteiros inicialmente vazia.


As operações são executadas na mesma ordem das linhas, ou seja, a operação da linha 02 foi executada depois da operação da linha 01, a operação da linha 03 foi executada depois da operação da linha 02 e assim sucessivamente até a linha final da tabela, que mostra a última operação executada.


Imagem associada para resolução da questão Imagem associada para resolução da questão


Selecione, dentre as alternativas disponíveis, aquela que substitui corretamente os termos {?} em cada tabela, nas linhas indicadas. Atente-se para o fato de que existe três {?} em cada tabela.

Alternativas