📝 algoritmos_arboles_pdf_TAI
← Volver

📚 ALGORITMOS, ESTRUCTURAS DE DATOS Y TIPOS DE PDF

Clase magistral para el examen TAI

🎓 Cómo usar este documento: Lee la explicación de cada bloque temático y responde las preguntas antes de pasar al siguiente. Las soluciones comentadas están al final.


BLOQUE 1 — COMPLEJIDAD DE ALGORITMOS

Notación O grande — Tipos de complejidad

La complejidad algorítmica mide cómo crece el tiempo de ejecución (o el espacio) en función del tamaño de la entrada n.

Complejidad Nombre Descripción Ejemplo
O(1) Constante Independiente del tamaño de la entrada Acceso a un elemento por índice
O(log n) Logarítmica Crece muy lentamente Búsqueda binaria
O(n) Lineal Crece proporcionalmente a n Recorrido de una lista
O(n log n) Linealítmica Entre lineal y cuadrática Mergesort, Heapsort, Quicksort (media)
O(n²) Cuadrática Crece con el cuadrado de n Burbuja, Inserción, Selección
O(2ⁿ) Exponencial Crece muy rápidamente Problemas NP (fuerza bruta)
O(n!) Factorial La más costosa Problema del viajante (fuerza bruta)

💡 Orden de eficiencia (de mejor a peor):
O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ) < O(n!)


🧪 TEST — BLOQUE 1: Complejidad

1. ¿Cuál de las siguientes complejidades es la más eficiente?


2. Un algoritmo de búsqueda binaria tiene una complejidad de:


3. Los algoritmos básicos de ordenación (burbuja, inserción, selección) tienen una complejidad de:


BLOQUE 2 — ALGORITMOS DE ORDENACIÓN

Clasificación general

Algoritmos de ordenación
├── Básicos — O(n²)
│     ├── Ordenación por selección
│     ├── Ordenación por inserción
│     └── Ordenación por burbuja (intercambio directo)
├── Eficientes — O(n log n)
│     ├── Mergesort
│     ├── Quicksort  (O(n²) en peor caso)
│     ├── Heapsort
│     └── Shellsort
└── Casos especiales
      └── Binsort / Bucket sort — O(n) bajo ciertas condiciones

💡 Algoritmo estable: mantiene el orden relativo de los elementos con clave repetida. Inestable: no lo garantiza.

💡 Ordenación interna: en memoria principal (acceso aleatorio). Ordenación externa: en memoria secundaria (restricciones de acceso).


Algoritmos básicos — O(n²)

Ordenación por selección

Idea: En cada iteración, selecciona el menor elemento del subvector no ordenado y lo intercambia con el primero de ese subvector.

Métrica Valor
Comparaciones N²/2
Intercambios N
Complejidad O(n²)

Ordenación por inserción

Idea: En cada iteración, inserta un elemento del subvector no ordenado en la posición correcta del subvector ya ordenado.

Métrica Valor
Comparaciones (media) N²/4
Intercambios (media) N²/8 (el doble en peor caso)
Complejidad O(n²) — pero casi lineal para conjuntos casi ordenados

Ordenación por burbuja (intercambio directo)

Idea: Los elementos más ligeros "ascienden" hacia arriba. Compara pares adyacentes e intercambia si están desordenados.

Métrica Valor
Comparaciones N²/2
Intercambios N²/2
Complejidad O(n²) — lineal en versión mejorada si ya está ordenado

💡 Mejora de la burbuja: usar un centinela que detecte si no hubo intercambios en una pasada → terminar anticipadamente.


Algoritmos eficientes — O(n log n)

Mergesort — "Divide y vencerás"

Idea: Dividir el conjunto en dos mitades, ordenar recursivamente cada mitad y combinar las dos mitades ordenadas.

Mergesort
1. Dividir el vector en dos mitades          → O(1)
2. Ordenar recursivamente cada mitad         → 2T(n/2)
3. Combinar (mezclar) las dos mitades        → O(n)

Recurrencia: T(n) = 2T(n/2) + n  →  T(n) ∈ O(n log₂ n)
Característica Valor
Complejidad O(n log n) — siempre, en todos los casos
Espacio extra O(n) — necesita array auxiliar
Estabilidad ✅ Estable

Quicksort — "Divide y vencerás"

Idea: Elegir un pivote, dividir el vector de forma que los menores queden a la izquierda y los mayores a la derecha, y ordenar recursivamente cada parte.

Quicksort
1. Elegir un pivote (p)
2. Partir el vector: elementos < p | p | elementos > p
3. Ordenar recursivamente cada parte
Caso Complejidad
Peor caso (pivote siempre el mínimo/máximo) O(n²)
Caso equilibrado (pivote = mediana) O(n log n)
Promedio O(n log n)

⚠️ Dato clave: Quicksort tiene O(n²) en el peor caso pero es muy eficiente en la práctica.


Heapsort — Basado en montículo (heap)

Idea: Construir un árbol parcialmente ordenado (heap) e ir extrayendo el máximo/mínimo sucesivamente.

Heapsort — O(n log n) siempre
1. Construcción inicial del heap:
   n inserciones O(log n)  →  O(n log n)
2. Extracción del mayor elemento:
   n extracciones O(log n)  →  O(n log n)
Total: O(n log n)

Shellsort — Mejora de inserción

Idea: Mejora de la ordenación por inserción creada por Donald Shell (1959). Compara elementos separados por varias posiciones y en pasadas con saltos cada vez menores ordena el vector.

Algoritmo Complejidad
Inserción O(n²)
Shellsort O(n log²n)

Tabla comparativa de algoritmos de ordenación

Algoritmo Mejor caso Caso medio Peor caso Estable Extra
Selección O(n²) O(n²) O(n²) O(1)
Inserción O(n) O(n²) O(n²) O(1)
Burbuja O(n) O(n²) O(n²) O(1)
Mergesort O(n log n) O(n log n) O(n log n) O(n)
Quicksort O(n log n) O(n log n) O(n²) O(log n)
Heapsort O(n log n) O(n log n) O(n log n) O(1)
Shellsort O(n log n) O(n log²n) O(n²) O(1)

💡 Timsort: combinación de Mergesort + Inserción. Es el algoritmo usado en Python y Java en la práctica.


🧪 TEST — BLOQUE 2: Algoritmos de ordenación

4. ¿Cuál es la complejidad de Mergesort en el peor caso?


5. ¿Cuál es la complejidad de Quicksort en el peor caso?


6. ¿Qué algoritmo de ordenación fue creado por Donald Shell en 1959 como mejora de la ordenación por inserción?


7. ¿Cuál de los siguientes algoritmos de ordenación es estable y tiene complejidad O(n log n) en todos los casos?


8. La ordenación por inserción tiene un comportamiento casi lineal cuando:


9. ¿Qué algoritmo de ordenación combina Mergesort con ordenación por inserción?


BLOQUE 3 — ALGORITMOS PARA GRAFOS

¿Qué es un grafo?

Un grafo es una estructura de datos formada por vértices (nodos) y aristas (edges) que los conectan.

Tipos de grafos
├── Dirigido     → las aristas tienen dirección (→)
├── No dirigido  → las aristas no tienen dirección
├── Ponderado    → las aristas tienen peso (coste)
└── No ponderado → las aristas no tienen peso

Tabla completa de algoritmos para grafos

Algoritmo Objetivo principal Tipo de grafo Pesos Complejidad Uso recomendado
BFS (Búsqueda en Anchura) Ruta más corta en grafos no ponderados Dirigido o no dirigido No ponderado O(V + E) Rutas cortas sin pesos. Conectividad.
DFS (Búsqueda en Profundidad) Detectar ciclos, componentes, orden topológico Dirigido o no dirigido No ponderado O(V + E) Ciclos, componentes conectados, orden topológico.
Dijkstra Ruta más corta desde un origen Dirigido o no dirigido No negativos O((V+E) log V) Rutas más cortas con aristas no negativas.
Bellman-Ford Ruta más corta desde un origen Dirigido o no dirigido Negativos permitidos O(VE) Rutas con posibles aristas negativas.
Floyd-Warshall Rutas más cortas entre todos los pares Dirigido o no dirigido Negativos (sin ciclos neg.) O(V³) Todos los pares de vértices.
Prim Árbol de Expansión Mínima (MST) No dirigido Positivos O(E log V) Diseño de redes con coste mínimo.
Kruskal Árbol de Expansión Mínima (MST) No dirigido Positivos O(E log V) Como Prim; más eficiente en grafos dispersos.
Kosaraju Componentes fuertemente conectados Dirigido No ponderado/ponderado O(V + E) Análisis de estructura de grafos dirigidos.
Tarjan Componentes fuertemente conectados Dirigido No ponderado/ponderado O(V + E) Como Kosaraju; mejor eficiencia en memoria.
Ford-Fulkerson Flujo máximo en una red Dirigido con capacidad Positivos O(Ef) Flujo máximo: transporte, tuberías.
Edmonds-Karp Flujo máximo (impl. de Ford-Fulkerson con BFS) Dirigido con capacidad Positivos O(VE²) Flujo máximo; mejora sobre Ford-Fulkerson.

💡 V = número de vértices, E = número de aristas, f = flujo máximo


Resumen por categoría de problema

¿Qué algoritmo uso?

Ruta más corta (sin pesos)          → BFS
Ruta más corta (pesos no negativos) → Dijkstra
Ruta más corta (pesos negativos)    → Bellman-Ford
Rutas más cortas TODOS los pares    → Floyd-Warshall
Árbol de Expansión Mínima (MST)     → Prim o Kruskal
Componentes fuertemente conectados  → Kosaraju o Tarjan
Flujo máximo                        → Ford-Fulkerson o Edmonds-Karp
Detectar ciclos / orden topológico  → DFS

Aplicabilidad por tipo de grafo

Tipo de grafo Algoritmos aplicables
Dirigidos BFS, DFS, Dijkstra, Bellman-Ford, Floyd-Warshall, Kosaraju, Tarjan, Ford-Fulkerson, Edmonds-Karp
No dirigidos BFS, DFS, Dijkstra, Bellman-Ford, Floyd-Warshall, Prim, Kruskal
Ponderados Dijkstra, Bellman-Ford, Floyd-Warshall, Prim, Kruskal, Ford-Fulkerson, Edmonds-Karp
No ponderados BFS, DFS, Kosaraju, Tarjan

🧪 TEST — BLOQUE 3: Algoritmos para grafos

10. ¿Qué algoritmo se usa para encontrar la ruta más corta en un grafo no ponderado?


11. ¿Cuál es la diferencia clave entre Dijkstra y Bellman-Ford?


12. ¿Qué algoritmo encuentra las rutas más cortas entre todos los pares de vértices?


13. Los algoritmos de Prim y Kruskal se usan para encontrar:


14. ¿Cuál es la complejidad de Floyd-Warshall?


15. ¿Para qué tipo de grafo se aplican exclusivamente los algoritmos de Prim y Kruskal?


BLOQUE 4 — ESTRUCTURAS DE DATOS: ÁRBOLES

¿Qué es un árbol?

Los árboles son estructuras de datos jerárquicas (no lineales). Sus nodos se almacenan en forma de árbol genealógico con un nodo raíz del que cuelgan los demás.


Terminología de los árboles

Término Definición
Nodo Cada elemento que contiene el árbol
Nodo raíz El primer nodo del árbol. Solo puede haber uno
Nodo padre Nodo que tiene al menos un hijo
Nodo hijo Nodo que tiene un padre
Nodo hermano Nodos que comparten el mismo padre
Nodo hoja Nodo sin hijos — siempre en los extremos
Nodo rama Nodo que no es raíz y tiene al menos un hijo
Sub-árbol Árbol generado a partir de una sección del árbol principal

Propiedades de los árboles

Propiedad Definición Fórmula
Nivel Generación dentro del árbol. La raíz está en el nivel 1 nivel = nodos sobre él + 1
Altura Número máximo de niveles del árbol max(altura(hijo1), altura(hijo2)...) + 1
Peso Número total de nodos del árbol peso(hijo1) + peso(hijo2) + ... + 1
Orden Número máximo de hijos que puede tener un nodo Definido en el diseño
Grado Número mayor de hijos que tiene algún nodo del árbol max(contarHijos(cada nodo))

⚠️ Dato clave: Un árbol vacío tiene 0 niveles. El nivel de la raíz es 1.


Tipos de árboles

Tipos de árboles
├── Árbol n-ario
│     └── Cada nodo puede tener hasta N hijos
├── Árbol binario
│     ├── Cada nodo puede tener máximo 2 hijos
│     ├── Árbol binario lleno → todos los nodos tienen 0 o 2 hijos
│     └── Árbol binario perfecto → lleno + todas las hojas en el mismo nivel

Recorridos sobre árboles binarios

💡 Los recorridos son búsquedas no informadas (a ciegas): recorren el árbol sin saber dónde está el dato buscado.

Recorrido Orden de visita Mnemotecnia
Pre-orden Raíz → Izquierda → Derecha R-I-D
In-orden Izquierda → Raíz → Derecha I-R-D
Post-orden Izquierda → Derecha → Raíz I-D-R

💡 Mnemotecnia:
- Pre = la raíz es lo primero
- In = la raíz está en medio (intermedio)
- Post = la raíz es lo último


Reconstrucción del árbol binario

Para reconstruir un árbol binario se necesitan dos recorridos, uno de los cuales debe ser siempre el in-orden:

Reconstrucción con In-orden + Pre-orden:
→ El In-orden se coloca horizontalmente
→ El Pre-orden se coloca verticalmente de arriba a abajo (tal cual)
→ Las intersecciones determinan la posición de cada nodo

Reconstrucción con In-orden + Post-orden:
→ El In-orden se coloca horizontalmente
→ El Post-orden se coloca en ORDEN INVERSO verticalmente (de arriba a abajo)
→ Las intersecciones determinan la posición de cada nodo

⚠️ Dato clave: Siempre se necesita el in-orden. Con pre-orden o post-orden solos no es posible reconstruir el árbol de forma unívoca.


Tipos de búsqueda en árboles

Tipo Estrategia Algoritmo
Búsqueda en profundidad Explora rama a rama hasta el final antes de retroceder DFS (Pre-orden, In-orden, Post-orden)
Búsqueda en amplitud Explora nivel por nivel BFS

🧪 TEST — BLOQUE 4: Árboles

16. ¿Cómo se denomina el nodo que no tiene hijos en un árbol?


17. En un árbol, ¿cuál es el nivel de la raíz?


18. En el recorrido in-orden de un árbol binario, ¿en qué posición se visita la raíz?


19. Para reconstruir un árbol binario a partir de sus recorridos, ¿qué recorrido es imprescindible tener siempre?


20. ¿Cómo se coloca el Post-orden al reconstruir un árbol junto con el In-orden?


21. Un árbol binario perfecto se caracteriza por:


BLOQUE 5 — TIPOS DE PDF

Variantes del formato PDF

Todos los tipos de PDF se basan en estándares de la ISO (Organización Internacional de Normalización).

Variantes del formato PDF
├── PDF/A  → Archivado a largo plazo
├── PDF/UA → Accesibilidad Universal
├── PDF/X  → Preimpresión e intercambio gráfico
├── PDF/VT → Impresión de datos variables y transaccional
├── PDF/H  → Industria sanitaria
├── PDF/E  → Documentación técnica e ingeniería
└── PDF con capacidad de búsqueda → resultado de OCR

Descripción de cada variante

Tipo Acrónimo Norma ISO Descripción Uso principal
PDF/A Archive ISO 19005-1 Archivado a largo plazo. Los recursos deben estar integrados y los metadatos en formato XMP Archivado permanente de documentos
PDF/UA Universal Accessibility Garantiza accesibilidad para personas con discapacidad. Define estructura de textos, imágenes, tablas y formularios Documentos accesibles
PDF/X eXchange — (2001) Para intercambio en preimpresión. Garantiza que no se pierda información de color o fuente Artes gráficas e impresión
PDF/VT Variable & Transactional — (2010) Impresión de datos variables (V) y transaccional (T). Procesa contenido recurrente eficientemente Impresión personalizada masiva
PDF/H Healthcare — (2008) Datos sanitarios: pacientes y hallazgos médicos. No es un estándar oficial aún Registros médicos
PDF/E Engineering Documentación técnica. Soporta modelos 3D, elementos rotativos, contenido interactivo Ingeniería y CAD
PDF con búsqueda Resultado de aplicar OCR (Optical Character Recognition) a un documento escaneado Digitalización de documentos

PDF/A — Variantes

Variante Descripción
PDF/A-1 Nivel base. Define reproducibilidad visual clara (PDF/A-1a y PDF/A-1b)
PDF/A-2 Extensión de PDF/A-1
PDF/A-3 Extensión de PDF/A-2
PDF/A-4 Extensión de PDF/A-3

⚠️ Requisitos PDF/A: los recursos deben estar integrados en el documento y los metadatos en formato XMP.


PDF/E — Características especiales

Característica Descripción
Visualización 3D Puede incrustar modelos 3D que se pueden expandir y rotar
Independencia No requiere software especial para visualizarlo
Metadatos Permite incrustar autor, fecha de creación y versión
Coherencia Se muestra de forma consistente en cualquier plataforma
Contenido interactivo Admite marcadores, formularios e hipervínculos
Origen Desarrollado para documentos CAD y planos de construcción

🧪 TEST — BLOQUE 5: Tipos de PDF

22. ¿Qué tipo de PDF está diseñado para el archivado a largo plazo de documentos?


23. ¿Qué significa la UA en PDF/UA?


24. El formato PDF/X fue desarrollado en 2001 para:


25. ¿Cuál de las siguientes variantes de PDF no es un estándar oficial de la ISO?


26. Un PDF con capacidad de búsqueda es el resultado de aplicar:


27. El formato PDF/E es especialmente adecuado para:



✅ SOLUCIONES COMENTADAS


1 → c) El orden de eficiencia de menor a mayor coste es: O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ) < O(n!). O(log n) es la segunda más eficiente, solo superada por O(1) que es constante independientemente del tamaño.

2 → b) La búsqueda binaria tiene complejidad O(log n) porque en cada paso descarta la mitad de los elementos restantes. Si hay 1.000 elementos, en ~10 pasos (log₂ 1000 ≈ 10) encuentra el resultado.

3 → c) Los algoritmos básicos de ordenación (burbuja, inserción y selección) tienen complejidad O(n²): requieren comparar cada elemento con todos los demás. Para n=1000 elementos, realizan ~1.000.000 de operaciones.

4 → b) Mergesort tiene complejidad O(n log n) en todos los casos (mejor, medio y peor). Su recurrencia T(n) = 2T(n/2) + n se resuelve en O(n log n). Es uno de sus puntos fuertes frente a Quicksort.

5 → c) El peor caso de Quicksort es O(n²), que ocurre cuando el pivote elegido siempre es el mínimo o el máximo del subvector (vector ya ordenado o inversamente ordenado). En el caso promedio es O(n log n).

6 → c) Shellsort fue creado por Donald Shell en 1959 como mejora de la ordenación por inserción. Compara elementos separados por saltos de tamaño decreciente, obteniendo una complejidad O(n log²n) en lugar de O(n²).

7 → c) Mergesort es el único algoritmo de la lista que es estable y garantiza O(n log n) en todos los casos (mejor, medio y peor). Quicksort no es estable y tiene O(n²) en el peor caso; Heapsort no es estable.

8 → b) La inserción es eficiente con vectores casi ordenados porque cuando un elemento ya está cerca de su posición correcta, requiere muy pocos desplazamientos. En ese caso se aproxima a O(n).

9 → c) Timsort es una combinación de Mergesort + Ordenación por inserción. Es el algoritmo de ordenación utilizado en Python (list.sort()) y Java (Arrays.sort()). Aprovecha las ventajas de ambos.

10 → b) BFS (Búsqueda en Anchura) es el algoritmo adecuado para encontrar la ruta más corta en grafos no ponderados, ya que explora los nodos nivel a nivel y el primero en llegar al destino lo hace por el camino más corto.

11 → b) La diferencia clave es que Dijkstra no admite pesos negativos en las aristas (se comporta incorrectamente), mientras que Bellman-Ford sí los admite y además puede detectar ciclos negativos.

12 → c) Floyd-Warshall encuentra las rutas más cortas entre todos los pares de vértices del grafo. Su complejidad es O(V³). Dijkstra solo encuentra las rutas desde un único vértice origen.

13 → c) Los algoritmos de Prim y Kruskal se usan para encontrar el Árbol de Expansión Mínima (MST, Minimum Spanning Tree), que conecta todos los nodos con el coste total mínimo. Ambos funcionan en grafos no dirigidos y ponderados.

14 → c) Floyd-Warshall tiene complejidad O(V³) porque usa tres bucles anidados sobre todos los vértices. Es el más costoso de los algoritmos de rutas más cortas, pero el único que resuelve todos los pares a la vez.

15 → b) Prim y Kruskal solo se aplican a grafos no dirigidos y ponderados. Ambos buscan el MST, que solo tiene sentido en grafos no dirigidos con pesos que representan costes.

16 → c) El nodo hoja es aquel que no tiene hijos y siempre se encuentra en los extremos de la estructura del árbol. No confundir con nodo raíz (el primero) ni nodo rama (tiene al menos un hijo y no es la raíz).

17 → b) El nivel de la raíz es 1 (la primera generación). Un árbol vacío tiene 0 niveles. El nivel de cada nodo se calcula contando los nodos que hay sobre él hasta la raíz y sumando 1.

18 → b) En el recorrido in-orden el orden es: Izquierda → Raíz → Derecha. La raíz se visita en posición intermedia. Pre-orden: Raíz primero. Post-orden: Raíz al final.

19 → c) Para reconstruir un árbol binario de forma unívoca siempre es imprescindible el in-orden. Combinado con pre-orden o post-orden, permite determinar la estructura completa del árbol.

20 → b) Al reconstruir con In-orden + Post-orden, el Post-orden se coloca en orden inverso al escrito, de arriba a abajo en el eje vertical. Si el post-orden es A-C-F-J... se colocaría ..J-F-C-A de arriba a abajo.

21 → b) Un árbol binario perfecto es aquel que es lleno (todos los nodos tienen 0 o 2 hijos) Y además todas las hojas están en el mismo nivel. Un árbol lleno no tiene por qué ser perfecto si sus hojas están en niveles distintos.

22 → c) PDF/A (Archive) es el formato diseñado para el archivado de documentos a largo plazo. Basado en la norma ISO 19005-1, requiere que los recursos estén integrados y los metadatos en formato XMP.

23 → b) UA significa Universal Accessibility (Accesibilidad Universal). PDF/UA garantiza que cualquier persona, incluidas las que tienen discapacidades, pueda acceder y usar la información del documento.

24 → c) PDF/X fue desarrollado en 2001 específicamente para el intercambio de documentos en preimpresión (artes gráficas). La X significa "intercambio" y su objetivo es garantizar que el color y las fuentes se reproduzcan fielmente.

25 → c) PDF/H (Healthcare, 2008) para la industria sanitaria no es un estándar oficial de la ISO. Sienta las bases para la conversión de registros médicos a PDF, pero actualmente no está formalmente estandarizado.

26 → b) Un PDF con capacidad de búsqueda es el resultado de aplicar OCR (Optical Character Recognition, Reconocimiento Óptico de Caracteres) a un documento escaneado o imagen, convirtiendo las imágenes de texto en texto seleccionable y buscable.

27 → c) PDF/E (Engineering) fue desarrollado para documentación técnica de ingeniería, siendo especialmente adecuado para planos de construcción y dibujos con modelos 3D que se pueden expandir o rotar dentro del propio archivo.


📊 TABLA FLASH FINAL — Datos clave Algoritmos, Árboles y PDF

Concepto Valor / Respuesta clave
Orden de complejidad (mejor a peor) O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ) < O(n!)
Búsqueda binaria O(log n)
Algoritmos básicos de ordenación O(n²)
Algoritmos eficientes de ordenación O(n log n)
Mergesort: complejidad en todos los casos O(n log n) — siempre
Mergesort: ¿es estable?
Mergesort: espacio extra O(n)
Quicksort: peor caso O(n²)
Quicksort: caso promedio O(n log n)
Quicksort: ¿es estable? No
Heapsort: complejidad O(n log n) en todos los casos
Shellsort: creador y año Donald Shell, 1959
Timsort = Mergesort + Inserción (Python y Java)
Inserción casi lineal cuando vector casi ordenado
BFS: uso Ruta más corta en grafos no ponderados
Dijkstra: restricción No admite pesos negativos
Bellman-Ford: ventaja Admite pesos negativos
Floyd-Warshall: objetivo Rutas más cortas entre todos los pares
Floyd-Warshall: complejidad O(V³)
Prim y Kruskal: objetivo Árbol de Expansión Mínima (MST)
Prim y Kruskal: tipo de grafo No dirigido y ponderado
Kosaraju y Tarjan: objetivo Componentes fuertemente conectados (dirigidos)
Ford-Fulkerson / Edmonds-Karp: objetivo Flujo máximo en redes
Nodo sin hijos Nodo hoja
Nivel de la raíz 1
Árbol vacío: niveles 0
Altura del árbol Número máximo de niveles
Peso del árbol Número total de nodos
Orden del árbol Número máximo de hijos por nodo
Recorrido pre-orden Raíz → Izq → Der
Recorrido in-orden Izq → Raíz → Der
Recorrido post-orden Izq → Der → Raíz
Reconstrucción árbol binario Siempre necesita el in-orden
Post-orden en reconstrucción Se coloca en orden inverso verticalmente
PDF/A: uso Archivado a largo plazo
PDF/A: norma ISO 19005-1
PDF/A: requisitos Recursos integrados + metadatos en XMP
PDF/UA: UA significa Universal Accessibility
PDF/X: X significa eXchange (intercambio) — preimpresión
PDF/X: año 2001
PDF/VT: VT significa Variable & Transactional (2010)
PDF/H: estado No es estándar oficial ISO
PDF/E: uso Documentación técnica + modelos 3D
PDF con búsqueda Resultado de aplicar OCR