As Estruturas de Dados definem a forma como os dados serão armazenados na memória do computador. Duas das estruturas de dados mais utilizadas na computação são a Pilha e a Fila. Considere as afirmativas abaixo que comparam as estruturas de Pilha e Fila:
I - A estrutura chamada Pilha é descrita como uma estratégia LIFO - last in, first out (o último que entra é o primeiro que sai), isto é, os elementos da pilha só podem ser retirados na ordem inversa à ordem que foram introduzidos.
II - A estrutura chamada Fila é descrita como uma estratégia FIFO - first in, first out (o primeiro que entra é o primeiro que sai), isto é, os elementos da pilha só podem ser retirados na mesma ordem em que foram inseridos.
III - Uma estrutura que recebe dos dados 10, 20, 30, 40 e 50 nessa ordem e só permite a sua retirada na ordem 50, 40, 30, 20 e 10 é um exemplo de uma Pilha.
IV - Uma estrutura que recebe dos dados 10, 20, 30, 40 e 50 nessa ordem e só permite a sua retirada na ordem 50, 40, 30, 20 e 10 é um exemplo de uma Fila.
V - Um programa que usa apenas estruturas de Pilha recebe os dados 1, 2, 3, 4 e 5 nessa ordem e imprime os dados na ordem 1, 2, 3, 4 e 5 pode ter sido implementado com duas estruturas de Pilha consecutivas.
As afirmativas CORRETAS são:
c) I, II e III, apenas.

Passo 1

Beleza, vamos lá! O enunciado fala sobre duas estruturas de dados muito usadas na programação: a Pilha e a Fila. Precisamos analisar cinco afirmativas para ver quais estão corretas quando comparamos essas estruturas. Para resolver isso, vamos entender como cada uma funciona e depois verificar cada afirmação.

Passo 2

Primeiro, vamos entender o que é uma Pilha. A Pilha funciona com o princípio LIFO (Last In, First Out), que em português significa “Último a Entrar, Primeiro a Sair”. Imagina uma pilha de pratos: você só consegue tirar o prato que foi colocado por último.

Passo 3

Agora, vamos ver a Fila. A Fila segue o princípio FIFO (First In, First Out), ou seja, “Primeiro a Entrar, Primeiro a Sair”. É como numa fila de banco: quem chega primeiro é atendido primeiro.

Passo 4

Vamos analisar cada afirmativa:
I - Fala sobre a Pilha ser LIFO. Isso está correto, exatamente como explicamos.
II - Diz que a Fila é FIFO. Também está certíssimo, seguindo a ordem de chegada.
III - Descreve uma estrutura que retira os dados na ordem inversa da inserção (50, 40, 30, 20, 10). Isso é uma Pilha, pois o último que entrou é o primeiro a sair.
IV - Afirma que a mesma ordem de retirada (50, 40, 30, 20, 10) seria uma Fila. Isso está errado, pois na Fila a retirada seguiria a ordem de inserção (10, 20, 30, 40, 50).
V - Diz que um programa que usa duas Pilhas pode imprimir os dados na mesma ordem de inserção. Isso está correto, pois usando duas Pilhas é possível reverter a ordem duas vezes, mantendo a sequência original.

Resposta

As afirmativas CORRETAS são: I, II, III e V, apenas.

Exercícios relacionados

Muitas vezes o uso de encadeamento simples acarreta a necessidade de incluir um comando de repetição (laço) para fazer um ponteiro (ou indexador) percorrer a estrutura a partir do início até ele se posicionar no penúltimo elemento da estrutura, demandado possivelmente por uma inserção e/ou uma deleção. No exemplo em questão, pela forma de implementação escolhida, podemos afirmar que isso ocorre sempre que se fizer uma operação:
e) deleção em ambas, fila de dados e pilha de elementos livres.
Muitas vezes o uso de encadeamento simples acarreta a necessidade de incluir um comando de repetição (laço) para fazer um ponteiro (ou indexador) percorrer a estrutura a partir do início até ele se posicionar no penúltimo elemento da estrutura, demandado possivelmente por uma inserção e/ou uma deleção. No exemplo em questão, pela forma de implementação escolhida, podemos afirmar que isso ocorre sempre que se fizer uma operação:
a) inserção na fila de dados.
Muitas vezes o uso de encadeamento simples acarreta a necessidade de incluir um comando de repetição (laço) para fazer um ponteiro (ou indexador) percorrer a estrutura a partir do início até ele se posicionar no penúltimo elemento da estrutura, demandado possivelmente por uma inserção e/ou uma deleção. No exemplo em questão, pela forma de implementação escolhida, podemos afirmar que isso ocorre sempre que se fizer uma operação:
b) deleção na fila de dados.