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

La complejidad temporal de Fibonacci recursivo ingenuo (fib(n) = fib(n−1) + fib(n−2)) es:

  1. ALogarítmica
  2. BConstante
  3. CExponencial
  4. DLineal
2.Algoritmos y complejidadDifícil

¿Qué afirmación sobre la notación o pequeña es correcta?

  1. A2n = o(n), porque 2n crece despacio
  2. Bn = o(n), porque toda función es o pequeña de sí misma
  3. Cn = o(n²), pero n no es o(n)
  4. Dn² = o(n)
3.Estructuras de datosMedia

Un árbol binario tiene la raíz 1 con hijo izquierdo 2 e hijo derecho 3; el nodo 2 tiene los hijos 4 (izquierdo) y 5 (derecho). ¿Cuál es el recorrido en postorden?

  1. A4 2 5 1 3
  2. B5 4 3 2 1
  3. C1 2 4 5 3
  4. D4 5 2 3 1
4.Estructuras de datosDifícil

¿Qué par de recorridos determina siempre un único árbol binario con claves distintas?

  1. ASolo el recorrido por niveles
  2. BPreorden y en orden
  3. CSolo el preorden
  4. DPreorden y postorden
5.Teoría de grafosMedia
ABCDEFCircuito eulerianoCamino euleriano, sin circuitoninguna de las dos

¿Tiene el grafo conexo un circuito euleriano, un camino euleriano que no es un circuito, o ninguno de los dos? Haz clic en tu respuesta.

|V| = 6|E| = 7
  1. 1Circuito euleriano
  2. 2Camino euleriano, sin circuito
  3. 3ninguna de las dos
6.Teoría de grafosDifícil
61591212051410ABCDEFG

Halla el peso total W de un árbol generador mínimo del grafo ponderado.

|V| = 7|E| = 9
W =

3Disoluciones

1.Algoritmos y complejidad

Respuesta: C · Exponencial

Por qué esta es la respuesta

El árbol de llamadas crece aproximadamente como φⁿ (unos 1,618ⁿ). La memoización lo reduce a O(n).

Respuesta

C · Exponencial
2.Algoritmos y complejidad

Respuesta: C · n = o(n²), pero n no es o(n)

Por qué esta es la respuesta

f = o(g) significa que f(n) / g(n) tiende a 0; n / n² tiende a 0, pero n / n = 1 no.

Respuesta

C · n = o(n²), pero n no es o(n)
3.Estructuras de datos

Respuesta: D · 4 5 2 3 1

Por qué esta es la respuesta

El postorden procesa 4 y 5 antes que 2, luego 3 y, por último, la raíz 1.

Respuesta

D · 4 5 2 3 1
4.Estructuras de datos

Respuesta: B · Preorden y en orden

Por qué esta es la respuesta

El preorden da la raíz, y su posición en la secuencia en orden separa los subárboles izquierdo y derecho; preorden con postorden es ambiguo cuando un nodo tiene un solo hijo.

Respuesta

B · Preorden y en orden
5.Teoría de grafos

Respuesta: ninguna de las dos

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.

Grados

deg(A) = 1, deg(B) = 4, deg(C) = 2, deg(D) = 3, deg(E) = 3, deg(F) = 1

Vértices impares

A, D, E, F → 4
ninguna de las dos

Respuesta

ninguna de las dos
6.Teoría de grafos

Respuesta: W = 53

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.

Algoritmo de Kruskal

DE (1): tomar
GB (5): tomar
AB (6): tomar
BD (9): tomar
GE (10): descartar, cierra un ciclo
CE (12): tomar
GD (14): descartar, cierra un ciclo
AC (15): descartar, cierra un ciclo
DF (20): tomar

Peso total

W = 1 + 5 + 6 + 9 + 12 + 20 = 53

Respuesta

W = 53

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