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.
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.
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.
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.
b) deleção na fila de dados.
Escreva uma função chamada progressoes que recebe como parâmetros o termo inicial (
), a razão e a quantidade de termos (
). Em seguida, a função deve calcular o enésimo termo (
) da Progressão Aritmética (PA) e da Progressão Geométrica (PG). As fórmulas para o cálculo do enésimo termo da PA e da PG são, respectivamente:
Finalmente, se o enésimo termo da PA for maior que o da PG, a função deve retornar a soma (
) dos
primeiros termos da PA. Caso contrário, a função deve retornar a soma
dos
primeiros termos da PG. As fórmulas da soma dos
primeiros termos de uma PA e de uma PG são, respectivamente:
Observação 1: O nome da função deve ser exatamente como especificado acima e seu arquivo deve obrigatoriamente se chamar problema1.py.
Observação 2: Seu programa deve conter apenas a função descrita acima. Você não precisa realizar a entrada e saída de dados (não precisa usar as funções input() e print()).
Observação 2: Seu programa deve conter apenas a função descrita acima. Você não precisa realizar a entrada e saída de dados (não precisa usar as funções input() e print()).