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

¿Qué significa que un problema tenga subestructura óptima?

  1. AUna solución óptima puede construirse a partir de soluciones óptimas de sus subproblemas
  2. BEl problema puede resolverse en tiempo constante
  3. CEl problema tiene exactamente una solución óptima, que comparten todos sus subproblemas
  4. DTodos los subproblemas tienen el mismo tamaño
2.Algoritmos y complejidadDifícil

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

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

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

  1. ABúsquedas por prefijo, como el autocompletado
  2. BOrdenar números
  3. CEncontrar caminos más cortos
  4. DAlmacenar matrices
4.Estructuras de datosDifícil

¿En qué mejora un radix tree (trie comprimido) a un trie simple?

  1. AFusiona las cadenas de nodos con un solo hijo en una arista etiquetada con una cadena
  2. BSolo guarda la primera letra de cada palabra
  3. CAlmacena cada palabra en una tabla hash en la raíz en lugar de en nodos separados
  4. DOrdena los hijos de cada nodo por frecuencia
5.Teoría de grafosMedia

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

|V| = 13|E| = 24
k =
6.Teoría de grafosDifícil
ABCDE

¿Cuántos recorridos de longitud 3 van de A a D? Un recorrido puede repetir vértices y aristas. Llama al número N.

M = matriz de adyacenciaL = 3
N =

3Disoluciones

1.Algoritmos y complejidad

Respuesta: A · Una solución óptima puede construirse a partir de soluciones óptimas de sus subproblemas

Por qué esta es la respuesta

La subestructura óptima es necesaria para que tanto los algoritmos voraces como la programación dinámica den respuestas correctas.

Respuesta

A · Una solución óptima puede construirse a partir de soluciones óptimas de sus subproblemas
2.Algoritmos y complejidad

Respuesta: D · 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

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

Respuesta: A · 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

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

Respuesta: A · Fusiona las cadenas de nodos con un solo hijo en una arista etiquetada con una cadena

Por qué esta es la respuesta

Contraer los caminos sin ramificaciones reduce el número de nodos y la memoria usada, sin perder la búsqueda por prefijo.

Respuesta

A · Fusiona las cadenas de nodos con un solo hijo en una arista etiquetada con una cadena
5.Teoría de grafos

Respuesta: k = 12

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

13 − 1 = 12

Aristas que quitar

k = 24 − 12 = 12

Respuesta

k = 12
6.Teoría de grafos

Respuesta: N = 2

Grados: el grado de un vértice es el número de aristas que inciden en él. Cada arista tiene dos extremos, así que los grados suman el doble del número de aristas: Σ gr(v) = 2|E| (el lema del apretón de manos). Por tanto, el número de vértices de grado impar es par. Kn tiene n(n − 1)/2 aristas, un grafo k-regular de n vértices tiene nk/2, y un árbol de n vértices tiene n − 1 aristas.

Matriz de adyacencia

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

Un paso más

(M³)AD = 2·0 + 0·1 + 0·0 + 1·0 + 2·1 = 2

Respuesta

N = 2

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