Projete e descreva com precisão o algoritmo e as estruturas de dados (registros, grafo, hash) para implementar…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir soluções computacionais de problemas de diferentes áreas do conhecimento, de forma individual e colaborativa, selecionando as estruturas de dados e técnicas adequadas, aperfeiçoando e articulando saberes escolares.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Projete e descreva com precisão o algoritmo e as estruturas de dados (registros, grafo, hash) para implementar um sistema simples de controle de versões que suporte commits, ramificações e fusões, garantindo identificação única dos commits.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Dados e estruturas: usar um registro 'Commit' com campos: id_hash, autor, timestamp, mensagem, ponteiros para pais (lista), e referência para árvore de arquivos. Armazenar objetos de conteúdo (blobs/árvore) em uma tabela hash (key = hash do conteúdo). Representação: grafo direcionado acíclico (DAG) cujos nós são commits e arestas apontam para pais; ramificações são referências (ponteiros) para nós no DAG. Algoritmo de commit: gerar snapshot de mudanças, criar objetos (blobs/árvore), computar id_hash (SHA-1/ SHA-256) do registro e dos objetos, inserir no armazenamento hash, adicionar nó ao DAG com ponteiros para pais e atualizar referência da branch. Ramificação: criar nova referência apontando para um commit existente (cria ponteiro de branch). Fusão (merge): localizar ancestral comum mais recente (LCA) no DAG, executar merge de conteúdo por comparação de três vias entre base (LCA), head da branch A e head da branch B; em conflitos, sinalizar para resolução manual; criar commit de merge com dois pais. Consistência e integridade: usar hashes para identificação única e detecção de corrupção; representar grafo de commits em índice para buscas eficientes. Operações auxiliares: busca de histórico por DFS/BFS no DAG, compactação/garbage collection removendo objetos não referenciados via marcação a partir de refs. Esta solução usa registros para commits, grafo dirigido para relacionamento entre commits e tabela hash para armazenar e recuperar objetos por id único.
Explicação
A solução apresentada utiliza estruturas de dados apropriadas, como registros para armazenar informações dos commits e um grafo direcionado acíclico para representar as relações entre eles, permitindo a implementação eficiente de commits, ramificações e fusões. O uso de uma tabela hash para armazenar objetos de conteúdo garante acesso rápido e identificação única, enquanto o algoritmo descrito aborda de forma clara as operações necessárias para o controle de versões. Além disso, a abordagem para resolução de conflitos e manutenção da integridade dos dados demonstra um entendimento sólido dos desafios envolvidos no gerenciamento de versões.
Raio-X da questão
controle de versões
avaliacao
algoritmos e estruturas de dados · controle de versões
Revisar conceitos de algoritmos e estruturas de dados.
O aluno pode falhar ao não considerar a identificação única dos commits, resultando em conflitos de versão.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Após chuvas intensas, um ponto comunitário passou a organizar entregas de kits de higiene para famílias cadastradas. Os…
- “Uma fala apagada por engano não pode desaparecer do acervo”, observou a responsável pela digitalização de depoimentos…
- — Se fecharmos a válvula errada, o posto de saúde fica sem água — alertou a técnica durante a revisão do sistema…
- — Meu número é 12, mas há pessoas com atendimento prioritário antes de mim — observou uma moradora durante um mutirão de…
- — A fila está dobrando a esquina — avisou um voluntário da cozinha comunitária, enquanto outra pessoa anotava, em um…
- Uma professora quer calcular o total de pontos de cada aluno e percebe que a planilha atualiza os resultados quando o…
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
