Estruturas de Dados e Algoritmos: pacote de revisão

Formulários, as principais etapas dos métodos de cada tópico e 6 exercícios, com soluções completas no final.

Novos exercíciosVoltar à disciplina

Na janela de impressão, escolha “Salvar como PDF” para guardar uma cópia no seu dispositivo.

1Fórmulas e métodos

Teoria dos grafos

Lema do aperto de mãos
Σ deg(v) = 2|E|
Grafos completos
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
Grafo regular
|E| = n·k/2
Árvore e floresta
|E| = n − 1, |E| = n − c
Folhas de uma árvore
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
Euler
circuito: todos os graus pares; caminho: exatamente 2 graus ímpares
Circuitos hamiltonianos em Kn
(n − 1)!/2
Atualização de Dijkstra
d(v) = min(d(v), d(u) + w(u, v))
Passeios de comprimento L
(Mᴸ)ij

Método

  1. Anote o grau de cada vértice; a soma dos graus é igual ao dobro do número de arestas.
  2. Em questões de Euler, verifique se o grafo é conexo e conte os vértices de grau ímpar.
  3. Para árvores, use n − 1 arestas e o lema do aperto de mãos.
  4. Em Dijkstra, mantenha uma tabela de distâncias provisórias e fixe a cada rodada o vértice não fixado de menor distância.
  5. Para uma árvore geradora mínima, ordene as arestas por peso e pule toda aresta que feche um ciclo (Kruskal), ou faça crescer uma árvore a partir de um vértice inicial (Prim).

2Exercícios

1.Algoritmos e complexidadeMédia

A busca em largura (BFS) em um grafo não ponderado encontra:

  1. ACaminhos mínimos em grafos que contêm arestas com pesos negativos
  2. BUma ordenação topológica em todos os grafos
  3. CCaminhos mínimos em número de arestas a partir do nó inicial
  4. DA árvore geradora mínima
2.Algoritmos e complexidadeDifícil

Qual afirmação sobre a notação o pequeno está correta?

  1. A2n = o(n), porque 2n cresce devagar
  2. Bn = o(n²), mas n não é o(n)
  3. Cn² = o(n)
  4. Dn = o(n), já que toda função é o pequeno de si mesma
3.Estruturas de dadosMédia

Árvores AVL e árvores rubro-negras garantem:

  1. AQue as chaves fiquem armazenadas na ordem de inserção
  2. BAltura O(log n) por meio do rebalanceamento
  3. CBusca em tempo constante em todos os casos
  4. DQue nenhum nó tenha dois filhos
4.Estruturas de dadosDifícil

Qual afirmação sobre o heapsort está correta?

  1. AOrdena no próprio lugar em O(n log n) no pior caso, mas não é estável
  2. BÉ estável e precisa de O(n) de memória extra
  3. CPrecisa de uma árvore binária de busca como armazenamento extra, então usa O(n) de memória adicional
  4. DRoda em tempo O(n) para qualquer entrada
5.Teoria dos grafosMédia

Uma árvore tem 4 vértices de grau 3, 4 vértices de grau 4, 4 vértices de grau 5, 4 vértices de grau 2, e todos os seus outros vértices são folhas (grau 1). Quantas folhas L ela tem?

4 × deg 34 × deg 44 × deg 54 × deg 2
L =
6.Teoria dos grafosDifícil
ABCDE

Quantos passeios de comprimento 2 vão de D a B? Um passeio pode repetir vértices e arestas. Chame o número de N.

M = matriz de adjacênciaL = 2
N =

3Soluções

1.Algoritmos e complexidade

Resposta: C · Caminhos mínimos em número de arestas a partir do nó inicial

Porque é esta a resposta

A BFS visita os nós em ordem de distância (em arestas) a partir da origem, então encontra caminhos mínimos não ponderados em O(V + E).

Resposta

C · Caminhos mínimos em número de arestas a partir do nó inicial
2.Algoritmos e complexidade

Resposta: B · n = o(n²), mas n não é o(n)

Porque é esta a resposta

f = o(g) significa que f(n) / g(n) tende a 0; n / n² tende a 0, mas n / n = 1 não.

Resposta

B · n = o(n²), mas n não é o(n)
3.Estruturas de dados

Resposta: B · Altura O(log n) por meio do rebalanceamento

Porque é esta a resposta

Árvores autobalanceadas mantêm a altura logarítmica, então busca, inserção e remoção são O(log n) no pior caso.

Resposta

B · Altura O(log n) por meio do rebalanceamento
4.Estruturas de dados

Resposta: A · Ordena no próprio lugar em O(n log n) no pior caso, mas não é estável

Porque é esta a resposta

O heapsort constrói um max-heap e extrai o máximo n vezes dentro do mesmo array; trocas a longas distâncias podem mudar a ordem de chaves iguais.

Resposta

A · Ordena no próprio lugar em O(n log n) no pior caso, mas não é estável
5.Teoria dos grafos

Resposta: L = 26

Euler, Hamilton e árvores: um grafo conexo tem um circuito euleriano (cada aresta uma vez, de volta ao início) quando todo vértice tem grau par, e um caminho euleriano que não é circuito quando exatamente dois vértices têm grau ímpar; o caminho vai então de um vértice ímpar ao outro. Um circuito hamiltoniano visita cada vértice uma vez; Kn tem (n − 1)!/2 deles. Uma árvore com n vértices tem n − 1 arestas, e um grafo conexo com m arestas mantém uma árvore geradora depois de remover m − n + 1 arestas.

Lema do aperto de mãos para uma árvore

L + 56 = 2(L + 16) − 2
L = 26

Resposta

L = 26

Atalho: L = 2 + Σ (d − 2) sobre os vértices de grau d ≥ 3.

6.Teoria dos grafos

Resposta: N = 1

Graus: o grau de um vértice é o número de arestas que o tocam. Cada aresta tem duas pontas, então os graus somam o dobro do número de arestas: Σ deg(v) = 2|E| (o lema do aperto de mãos). Portanto o número de vértices de grau ímpar é par. Kn tem n(n − 1)/2 arestas, um grafo k-regular com n vértices tem nk/2, e uma árvore com n vértices tem n − 1 arestas.

Matriz de adjacência

A: 0 1 1 0 0
B: 1 0 1 0 1
C: 1 1 0 0 1
D: 0 0 0 0 1
E: 0 1 1 1 0

Vizinhos comuns

(M²)DB = 0·1 + 0·0 + 0·1 + 0·0 + 1·1 = 1

Resposta

N = 1

ExamProblems · examproblems.com/courses/data-structures-and-algorithms