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
- Descreva um algoritmo colaborativo para integração automática de alterações em um repositório de código estudantil que…
- Descreva com precisão o algoritmo e as estruturas de dados (registros, grafo, pilha/fila) para um programa que gerencie…
- Projete um algoritmo e descreva as estruturas de dados para implementar operações de desfazer/refazer (undo/redo) em um…
- Você e sua equipe vão criar e publicar um site colaborativo com textos, imagens e pequenos scripts. Descreva como…
- Desde que se juntou a um projeto de documentação colaborativa sobre patrimônio cultural, um grupo de estudantes utiliza…
- Durante a produção colaborativa de um documentário digital sobre a memória de uma comunidade brasileira, estudantes…
🔎 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
