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 de: para i = 1 hasta n: (j = 1; mientras j < n: j = j × 2)?

  1. AO(n)
  2. BO(n²)
  3. CO(n log n)
  4. DO(log n)
2.Algoritmos y complejidadDifícil

¿Cómo se comparan n! y 2ⁿ para n grande?

  1. An! crece más deprisa que 2ⁿ
  2. BCrecen al mismo ritmo
  3. Cn! es O(n²)
  4. D2ⁿ crece más deprisa que 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 preorden?

  1. A1 2 4 5 3
  2. B4 2 5 1 3
  3. C4 5 2 3 1
  4. D1 2 3 4 5
4.Estructuras de datosDifícil

¿Cuáles son los costes en tiempo y en espacio adicional de invertir en el sitio una lista simplemente enlazada?

  1. ATiempo O(n) y espacio adicional O(n)
  2. BTiempo O(n) y espacio adicional O(1)
  3. CTiempo O(1) y espacio adicional O(1)
  4. DTiempo O(n log n) y espacio adicional O(1)
5.Teoría de grafosMedia

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

|V| = 14|E| = 20
k =
6.Teoría de grafosDifícil
1018974205ABCDEF

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

|V| = 6|E| = 8
W =

3Disoluciones

1.Algoritmos y complejidad

Respuesta: C · O(n log n)

Por qué esta es la respuesta

El bucle interior se ejecuta unas log₂ n veces por cada una de las n iteraciones exteriores, lo que da O(n log n).

Respuesta

C · O(n log n)
2.Algoritmos y complejidad

Respuesta: A · n! crece más deprisa que 2ⁿ

Por qué esta es la respuesta

Para n ≥ 4, n! supera a 2ⁿ, y el cociente crece sin límite porque cada factor adicional de n! es mayor que 2.

Respuesta

A · n! crece más deprisa que 2ⁿ
3.Estructuras de datos

Respuesta: A · 1 2 4 5 3

Por qué esta es la respuesta

El preorden visita 1, luego su subárbol izquierdo (2, 4, 5) y después 3; las demás opciones son el recorrido en orden, el postorden y el recorrido por niveles.

Respuesta

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

Respuesta: B · Tiempo O(n) y espacio adicional O(1)

Por qué esta es la respuesta

Con tres punteros (anterior, actual, siguiente) se puede invertir cada enlace en una sola pasada sin reservar nodos nuevos.

Respuesta

B · Tiempo O(n) y espacio adicional O(1)
5.Teoría de grafos

Respuesta: k = 7

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

14 − 1 = 13

Aristas que quitar

k = 20 − 13 = 7

Respuesta

k = 7
6.Teoría de grafos

Respuesta: W = 37

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

AC (1): tomar
DE (4): tomar
BE (5): tomar
CE (7): tomar
BC (8): descartar, cierra un ciclo
BD (9): descartar, cierra un ciclo
AB (10): descartar, cierra un ciclo
EF (20): tomar

Peso total

W = 1 + 4 + 5 + 7 + 20 = 37

Respuesta

W = 37

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