1.Fácil
Qual é a principal diferença entre um array estático e um array dinâmico?
- AUm array estático tem acesso por índice mais lento
- BUm array dinâmico armazena seus elementos em nós encadeados para poder crescer um de cada vez
- CUm array estático só pode armazenar números
- DUm array dinâmico pode crescer passando para um bloco de memória maior
2.Fácil
Onde fica o menor elemento de um min-heap binário?
- AEm qualquer folha, que precisa ser procurada
- BNa última posição do array
- CNa raiz
- DNa folha mais à esquerda
3.Fácil
Na representação de um grafo por lista de adjacência, o que é armazenado para cada vértice?
- AO número total de arestas do grafo
- BUma linha de V valores booleanos
- CO caminho mínimo até todos os outros vértices
- DUma lista dos seus vértices vizinhos
4.Média
Em uma tabela hash com endereçamento aberto, qual é o fator de carga máximo possível?
- ANão há máximo
- B2
- C0,5
- D1
5.Média
Um buffer circular (ring buffer) é comumente usado para implementar:
- AUma fila de tamanho fixo
- BUma função hash
- CUm percurso em grafo
- DUma árvore binária de busca
6.Média
Como um novo elemento é inserido em um heap binário?
- AReconstrói-se o heap inteiro do zero
- BInsere-se na posição ordenada, deslocando uma posição à direita todos os elementos maiores
- CColoca-se na raiz e faz-se sift-down
- DColoca-se no fim do array e faz-se sift-up enquanto violar a propriedade de heap
7.Difícil
Uma árvore de Fenwick (binary indexed tree) sobre um array de n números permite quais operações em O(log n)?
- AConsultas de soma de prefixo e atualizações de um único elemento
- BOrdenar o array e fazer busca binária
- CEncontrar a mediana em O(1)
- DInserir elementos em qualquer posição
8.Difícil
Em uma tabela hash com endereçamento aberto, por que a remoção costuma ser feita com um marcador de "lápide" (tombstone)?
- ALápides aceleram o hashing
- BChaves removidas precisam ser mantidas para sempre por segurança, então as posições nunca podem ser reutilizadas
- CIsso deixa a tabela ordenada
- DEsvaziar a posição poderia quebrar a sequência de sondagem de outras chaves
Gabarito
- 1. D · Um array dinâmico pode crescer passando para um bloco de memória maior
- 2. C · Na raiz
- 3. D · Uma lista dos seus vértices vizinhos
- 4. D · 1
- 5. A · Uma fila de tamanho fixo
- 6. D · Coloca-se no fim do array e faz-se sift-up enquanto violar a propriedade de heap
- 7. A · Consultas de soma de prefixo e atualizações de um único elemento
- 8. D · Esvaziar a posição poderia quebrar a sequência de sondagem de outras chaves
Soluções completas passo a passo: pratique este tópico em examproblems.com.