Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — INSTITUTO AOCP 2023

Algoritmos e Estrutura de DadosEstrutura de Dados
Código
qq971018
Banca
INSTITUTO AOCP
Órgão
IF-MA
Ano
2023
Nível
Superior
Cargo
Analista De Tecnologia Da Informação - Desenvolvimento De Sistemas
Pilhas são uma forma de lista linear com uma propriedade especial chamada Last In, First Out (LIFO). Considere uma pilha que implementa um algoritmo para verificar se uma sequência de caracteres contém parênteses balanceados. Assinale a alternativa que apresenta o funcionamento desse algoritmo.
  1. AA pilha armazena apenas parênteses abertos e fecha parênteses quando os encontra.
  2. BA pilha armazena apenas parênteses fechados e os remove ao encontrar parênteses abertos.
  3. CA pilha armazena apenas parênteses abertos e os remove ao encontrar parênteses correspondentes fechados.
  4. DA pilha armazena parênteses abertos e fechados e remove-os ao encontrar pares correspondentes.
  5. EA pilha armazena todos os parênteses e remove-os apenas após percorrer toda a sequência.
Revelar gabarito e comentário

GabaritoC — A pilha armazena apenas parênteses abertos e os remove ao encontrar parênteses correspondentes fechados.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Pilhas e verificação de parênteses balanceados

Gabarito: letra C. O algoritmo clássico utiliza uma pilha para armazenar apenas os parênteses abertos e, ao encontrar um parêntese fechado correspondente, remove (pop) o aberto do topo. Ao final, se a pilha estiver vazia, a sequência está balanceada. Essa lógica reflete exatamente a operação descrita na alternativa C.

A pilha é uma estrutura de dados LIFO (Last In, First Out), com duas operações fundamentais: push (inserir no topo) e pop (remover do topo). No contexto do balanceamento, ao percorrer a expressão:

  • Quando se encontra um parêntese aberto (, [, {, realiza-se push.

  • Quando se encontra um parêntese fechado ), ], }, verifica-se se o topo da pilha é o parêntese aberto correspondente; em caso positivo, realiza-se pop; caso contrário, a sequência está desbalanceada.

  1. 1Percorre a expressão
  2. 2Aberto? → push na pilha
  3. 3Fechado? → verifica topo
  4. 4Corresponde? → pop
  5. 5Não corresponde? → desbalanceado
  6. 6Fim: pilha vazia? → balanceado
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que a pilha apenas armazena abertos e “fecha parênteses quando os encontra”. A redação é imprecisa: o algoritmo não “fecha” parênteses, mas sim remove o aberto correspondente (pop) ao encontrar o fechado. Além disso, não explicita que a remoção depende da correspondência.

Alternativa B — ❌ Incorreta

Inverte a lógica: armazenar parênteses fechados não faz sentido no algoritmo clássico. A pilha guarda os abertos para que, ao encontrar um fechado, possa verificar se há o correspondente no topo.

Alternativa C — ✅ Correta ⟵ GABARITO

Descreve exatamente o procedimento: armazenam-se apenas parênteses abertos (push) e, ao encontrar um fechado correspondente, remove-se o aberto (pop). Ao final, pilha vazia indica balanceamento.

Alternativa D — ❌ Incorreta

Armazenar tanto abertos quanto fechados é redundante e desnecessário. O algoritmo padrão só precisa guardar os abertos; os fechados são processados imediatamente e não precisam ser armazenados na pilha.

Alternativa E — ❌ Incorreta

Remove os elementos apenas após percorrer toda a sequência. Isso quebraria a verificação de correspondência imediata, pois o algoritmo precisa verificar cada fechado contra o último aberto (topo) no momento em que aparece.

PEGA ESSA DICA!

Para questões sobre pilhas e balanceamento, lembre-se: a pilha guarda os símbolos de abertura. Ao encontrar um símbolo de fechamento, confira se o topo é o correspondente e desempilhe. Se a pilha terminar vazia, está tudo certo.

Gabarito: letra C

Link permanente: /questoes/qq971018