Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — INSTITUTO AOCP 2023
Algoritmos e Estrutura de Dados›Estrutura 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.
AA pilha armazena apenas parênteses abertos e fecha parênteses quando os encontra.
BA pilha armazena apenas parênteses fechados e os remove ao encontrar parênteses abertos.
CA pilha armazena apenas parênteses abertos e os remove ao encontrar parênteses correspondentes fechados.
DA pilha armazena parênteses abertos e fechados e remove-os ao encontrar pares correspondentes.
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.
1Percorre a expressão
2Aberto? → push na pilha
3Fechado? → verifica topo
4Corresponde? → pop
5Não corresponde? → desbalanceado
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.