Estructuras de datos y algoritmos: pack de repaso

Hojas de fórmulas, los pasos clave de los métodos de cada tema y 6 problemas de práctica, con las soluciones completas al final.

Problemas nuevosVolver a la asignatura

En la ventana de impresión, elige «Guardar como PDF» para conservar una copia en tu dispositivo.

1Fórmulas y métodos

Teoría de grafos

Lema del apretón de manos
Σ deg(v) = 2|E|
Grafos completos
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
Grafo regular
|E| = n·k/2
Árbol y bosque
|E| = n − 1, |E| = n − c
Hojas de un árbol
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
Euler
circuito: todos los grados pares; camino: exactamente 2 grados impares
Circuitos de Hamilton en Kn
(n − 1)!/2
Actualización de Dijkstra
d(v) = min(d(v), d(u) + w(u, v))
Recorridos de longitud L
(Mᴸ)ij

Método

  1. Anota el grado de cada vértice; los grados suman el doble del número de aristas.
  2. En las preguntas de Euler, comprueba que el grafo sea conexo y cuenta los vértices de grado impar.
  3. En los árboles, usa n − 1 aristas y el lema del apretón de manos.
  4. En Dijkstra, lleva una tabla de distancias provisionales y fija en cada ronda el vértice no fijado de menor distancia.
  5. Para un árbol generador mínimo, ordena las aristas por peso y descarta toda arista que cierre un ciclo (Kruskal), o haz crecer un único árbol desde un vértice inicial (Prim).

2Problemas de práctica

1.Algoritmos y complejidadMedia

¿Cuál es la complejidad temporal del algoritmo de Bellman-Ford en un grafo con V vértices y E aristas?

  1. AO(E log V)
  2. BO(V + E)
  3. CO(V³ × E)
  4. DO(V × E)
2.Algoritmos y complejidadDifícil

La multiplicación de Karatsuba cumple T(n) = 3T(n/2) + O(n). ¿Cuál es la solución?

  1. AΘ(n3)
  2. BΘ(n²)
  3. CΘ(n log n)
  4. DΘ(nlog₂ 3), aproximadamente n1,585
3.Estructuras de datosMedia

Un trie (árbol de prefijos) es especialmente eficiente para:

  1. AEncontrar caminos más cortos
  2. BBúsquedas por prefijo, como el autocompletado
  3. CAlmacenar matrices
  4. DOrdenar números
4.Estructuras de datosDifícil

¿Qué garantía dan las reglas del árbol rojo-negro sobre la altura de un árbol con n claves?

  1. ALa altura es como máximo 2 log2(n + 1)
  2. BLa altura es como máximo log2 n + 1
  3. CLa altura es como máximo n / 2
  4. DLa altura es exactamente log2 n
5.Teoría de grafosMedia

Un grafo conexo tiene 12 vértices y 13 aristas. ¿Cuántas aristas, k, hay que quitar para obtener un árbol generador?

|V| = 12|E| = 13
k =
6.Teoría de grafosDifícil
3256123310ABCDEF

Usa el algoritmo de Dijkstra para hallar la longitud d(F) del camino más corto de A a F en el grafo ponderado.

inicio: Afin: F
d(F) =

3Disoluciones

1.Algoritmos y complejidad

Respuesta: D · O(V × E)

Por qué esta es la respuesta

Cada una de las V − 1 rondas relaja las E aristas, lo que da O(VE); a cambio, admite pesos de arista negativos.

Respuesta

D · O(V × E)
2.Algoritmos y complejidad

Respuesta: D · Θ(nlog₂ 3), aproximadamente n1,585

Por qué esta es la respuesta

Como log₂ 3 ≈ 1,585 > 1, dominan las hojas según el teorema maestro, lo que supera al método escolar O(n²).

Respuesta

D · Θ(nlog₂ 3), aproximadamente n1,585
3.Estructuras de datos

Respuesta: B · Búsquedas por prefijo, como el autocompletado

Por qué esta es la respuesta

Los tries almacenan cadenas carácter a carácter a lo largo de caminos, así que las búsquedas y consultas por prefijo tardan un tiempo proporcional a la longitud de la clave.

Respuesta

B · Búsquedas por prefijo, como el autocompletado
4.Estructuras de datos

Respuesta: A · La altura es como máximo 2 log2(n + 1)

Por qué esta es la respuesta

Todos los caminos tienen el mismo número de nodos negros y los nodos rojos no pueden ser adyacentes, así que el camino más largo es como mucho el doble del más corto, lo que da una altura O(log n).

Respuesta

A · La altura es como máximo 2 log2(n + 1)
5.Teoría de grafos

Respuesta: k = 2

Euler, Hamilton y árboles: un grafo conexo tiene un circuito euleriano (cada arista una vez, volviendo al inicio) cuando todos los vértices tienen grado par, y un camino euleriano que no es un circuito cuando exactamente dos vértices tienen grado impar; entonces el camino va de un vértice impar al otro. Un circuito hamiltoniano visita cada vértice una vez; Kn tiene (n − 1)!/2 de ellos. Un árbol de n vértices tiene n − 1 aristas, y un grafo conexo con m aristas conserva un árbol generador tras quitarle m − n + 1 aristas.

Aristas de un árbol generador

12 − 1 = 11

Aristas que quitar

k = 13 − 11 = 2

Respuesta

k = 2
6.Teoría de grafos

Respuesta: d(F) = 11

Caminos mínimos y árboles generadores: el algoritmo de Dijkstra fija un vértice por ronda: el vértice no fijado con la menor distancia provisional. Su distancia es entonces definitiva, y cada vecino v recibe d(v) = min(d(v), d(u) + w(u, v)). El algoritmo de Kruskal construye un árbol generador mínimo tomando las aristas de la más ligera a la más pesada y descartando toda arista que cierre un ciclo; el algoritmo de Prim hace crecer un único árbol desde un vértice inicial añadiendo siempre la arista más ligera que sale de él. Un árbol generador de n vértices tiene n − 1 aristas.

Dijkstra ronda a ronda

Cada línea: el vértice fijado, su distancia definitiva y los vecinos cuya distancia mejora.

A (0): B: 3, C: 2
C (2): E: 8
B (3): D: 8
D (8): F: 11
E (8)
F (11)

Camino más corto

A → B → D → F
d(F) = 11

Respuesta

d(F) = 11

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