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: para j = 1 hasta i: hacer trabajo O(1)?

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

¿Cuáles son los costes de tiempo y espacio de calcular el n-ésimo número de Fibonacci con un bucle que guarda solo los dos últimos valores?

  1. ATiempo O(2ⁿ) y espacio O(1)
  2. BTiempo O(log n) y espacio O(n)
  3. CTiempo O(n) y espacio O(n)
  4. DTiempo O(n) y espacio O(1)
3.Estructuras de datosMedia

Una tabla hash de tamaño 7 usa h(k) = k mod 7 y sondeo lineal. Después de insertar 10, ¿dónde se almacena 17?

  1. AEn el índice 0
  2. BEn el índice 6
  3. CEn el índice 3
  4. DEn el índice 4
4.Estructuras de datosDifícil

Al insertar una clave en un árbol AVL, el subárbol izquierdo de un nodo queda demasiado alto, y la nueva clave fue al subárbol izquierdo de su hijo izquierdo (caso izquierda-izquierda). ¿Qué corrección se aplica?

  1. ARecolorear el nodo y su hijo
  2. BUna rotación simple a la izquierda en el nodo desequilibrado
  3. CUna rotación a la izquierda en el hijo y luego una rotación a la derecha en el nodo
  4. DUna rotación simple a la derecha en el nodo desequilibrado
5.Teoría de grafosMedia

Un árbol tiene 4 vértices de grado 3, 2 vértices de grado 2, y todos sus demás vértices son hojas (grado 1). ¿Cuántas hojas, L, tiene?

4 × deg 32 × deg 2
L =
6.Teoría de grafosDifícil
14331316111112ABCDEFG

El algoritmo de Dijkstra se ejecuta desde A. Haz clic en el vértice que se fija (se hace permanente) en la ronda 5; la propia A es la ronda 1.

inicio: Aronda 5
  1. 1A
  2. 2B
  3. 3C
  4. 4D
  5. 5E
  6. 6F
  7. 7G

3Disoluciones

1.Algoritmos y complejidad

Respuesta: D · O(n²)

Por qué esta es la respuesta

El cuerpo interior se ejecuta n(n + 1) / 2 veces en total, lo que sigue siendo cuadrático.

Respuesta

D · O(n²)
2.Algoritmos y complejidad

Respuesta: D · Tiempo O(n) y espacio O(1)

Por qué esta es la respuesta

Cada paso necesita solo los dos valores anteriores, así que la tabla del método ascendente puede sustituirse por dos variables.

Respuesta

D · Tiempo O(n) y espacio O(1)
3.Estructuras de datos

Respuesta: D · En el índice 4

Por qué esta es la respuesta

10 mod 7 = 3 y 17 mod 7 = 3; el índice 3 está ocupado, así que el sondeo lineal prueba la posición siguiente, el índice 4.

Respuesta

D · En el índice 4
4.Estructuras de datos

Respuesta: D · Una rotación simple a la derecha en el nodo desequilibrado

Por qué esta es la respuesta

En el caso izquierda-izquierda, una rotación a la derecha sube el hijo izquierdo y restablece el equilibrio; los casos en zigzag necesitan una rotación doble.

Respuesta

D · Una rotación simple a la derecha en el nodo desequilibrado
5.Teoría de grafos

Respuesta: L = 6

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.

Lema del apretón de manos para un árbol

L + 16 = 2(L + 6) − 2
L = 6

Respuesta

L = 6

Atajo: L = 2 + Σ (d − 2) sobre los vértices de grado d ≥ 3.

6.Teoría de grafos

Respuesta: D

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

1. A (0): B: 14, C: 3
2. C (3): B: 6
3. B (6): D: 19, G: 7
4. G (7): D: 8, E: 19
5. D (8): E: 9, F: 14
6. E (9)
7. F (14)

ronda 5

D

Respuesta

D

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