Want to create interactive content? It’s easy in Genially!

Reuse this genially

Estructura de Datos: Árboles y Grafos

luismarchena274

Created on December 16, 2023

Start designing with a free template

Discover more than 1500 professional designs like these:

Transcript

Estructura de Datos

Aplicaciones

Árboles y Grafos

Grafos: Un grafo es una colección de nodos (vértices) conectados por aristas. Los grafos se utilizan para representar relaciones entre entidades y son fundamentales en teoría de grafos y ciencias de la computación. Pueden ser dirigidos (las aristas tienen una dirección) o no dirigidos. Los grafos son ampliamente utilizados en algoritmos de búsqueda, redes, representación de datos y modelado de situaciones del mundo real.

Árboles: Un árbol es una estructura de datos jerárquica que consiste en nodos conectados por aristas. Cada árbol tiene un nodo raíz, y cada nodo puede tener cero o más nodos hijos. Los nodos sin hijos se llaman hojas. Un árbol se utiliza comúnmente en ciencias de la computación para representar estructuras jerárquicas, como la estructura de directorios de un sistema de archivos.

Representación de Grafos:

Operaciones Básicas sobre Árboles Binarios:

Clasificación de Árboles

Operaciones Básicas sobre Grafos:

Clasificación de Árboles:

Árboles Binarios: Cada nodo en este árbol puede tener a lo sumo dos hijos: uno izquierdo y otro derecho.

  • Características: Operaciones eficientes en términos de búsqueda y manipulación. Se utiliza en la implementación de estructuras de datos como árboles de búsqueda binarios.
Árboles AVL: Son árboles binarios de búsqueda autoequilibrados, lo que significa que se aseguran de mantener un balance adecuado para optimizar las operaciones de búsqueda, inserción y eliminación.
  • Características: Cada nodo tiene un factor de equilibrio que indica la diferencia entre las alturas de los subárboles izquierdo y derecho. Se realizan rotaciones para mantener el equilibrio.
Árboles B: Estructuras de datos de búsqueda utilizadas principalmente en bases de datos y sistemas de archivos. Están diseñados para ser eficientes en operaciones de búsqueda y manipulación en discos u otros dispositivos de almacenamiento.
  • Características: Los nodos pueden contener múltiples claves y apuntadores, lo que reduce la altura del árbol y mejora el rendimiento.
Árboles Rojo-Negro: Son árboles binarios de búsqueda autoequilibrados similares a los AVL, pero menos estrictos en términos de equilibrio. Se utilizan para mantener un equilibrio razonable mientras permiten una mayor flexibilidad en las operaciones.
  • Características: Los nodos son etiquetados como rojos o negros, y se aplican reglas de coloración para garantizar el equilibrio.

Operaciones Básicas sobre Árboles:

Inserción: Agregar un nuevo nodo al árbol.

  • Proceso: Se inicia desde el nodo raíz y se desplaza hacia abajo hasta encontrar la posición adecuada para el nuevo nodo. Se ajusta la estructura del árbol según sea necesario.
Eliminación: Eliminar un nodo existente del árbol.
  • Proceso: Se localiza el nodo a eliminar y se realiza la eliminación. Dependiendo de la situación, se pueden realizar ajustes adicionales en la estructura del árbol para mantener su integridad y balance.
Búsqueda: Encontrar un nodo con un valor específico en el árbol.
  • Proceso: Se inicia desde el nodo raíz y se sigue el camino hacia abajo, comparando el valor buscado con los valores de los nodos en cada nivel. La búsqueda se realiza de manera eficiente debido a la estructura ordenada del árbol.
Recorridos:
  • Inorden: Proceso recursivo que visita primero el subárbol izquierdo, luego el nodo actual y finalmente el subárbol derecho.
  • Preorden: Visita primero el nodo actual, luego el subárbol izquierdo y, finalmente, el subárbol derecho.
  • Postorden: Visita primero el subárbol izquierdo, luego el subárbol derecho y, finalmente, el nodo actual.

Aplicaciones de Árboles:

  1. Estructuras de Directorios en Sistemas de Archivos: Los árboles se utilizan para organizar la estructura de directorios en sistemas de archivos. Cada directorio puede contener subdirectorios y archivos, formando una jerarquía que facilita la organización y recuperación de datos.
  2. Compresión de Datos con Árboles Huffman: Árboles de Huffman se emplean en algoritmos de compresión de datos. Estos árboles binarios permiten representar de manera eficiente secuencias de datos, asignando códigos de longitud variable a cada símbolo según su frecuencia de aparición.
  3. Bases de Datos: Índices basados en Árboles: En bases de datos, los árboles (como B-árboles) se utilizan para construir índices eficientes. Estos índices aceleran las operaciones de búsqueda y recuperación de datos, mejorando el rendimiento de las consultas.
  4. Redes de Computadoras: Árboles de Expansión Mínima (MST): En redes, los árboles se utilizan para encontrar la red de expansión mínima (Minimum Spanning Tree). Este tipo de árbol conecta todos los nodos de una red con el costo total más bajo posible.
  5. Estructuras de Representación de Sintaxis en Compiladores: En la construcción de compiladores, se utilizan árboles de sintaxis abstracta para representar la estructura gramatical de un programa. Estos árboles facilitan el análisis y procesamiento del código fuente.
  6. Juegos y Estrategia: Árboles de Juego: En inteligencia artificial y juegos, se utilizan árboles de juego para representar posibles movimientos y estrategias en juegos de decisión, como el ajedrez. Estos árboles ayudan a tomar decisiones informadas en situaciones complejas.

Representación de Grafos:

Matriz de Adyacencia: Definición: Utiliza una matriz bidimensional para representar las conexiones entre nodos.

    • Ventajas: Fácil implementación y acceso rápido a la información de adyacencia.
    • Desventajas: Ineficiente para grafos dispersos debido al uso de espacio para conexiones inexistentes.
Lista de Adyacencia: Utiliza listas enlazadas para almacenar las conexiones de cada nodo.
    • Ventajas: Eficiente para grafos dispersos y ahorro de espacio.
    • Desventajas: Requiere más tiempo para verificar la existencia de una arista específica.
Matriz de Incidencia: Utiliza una matriz bidimensional para representar las aristas y su relación con los nodos.
    • Ventajas: Útil para grafos ponderados y dirigidos.
    • Desventajas: Uso de más espacio en comparación con otras representaciones.

Operaciones Básicas sobre Grafos:

1. Añadir Nodo: Agrega un nuevo vértice al grafo.

  • Proceso: Agregar una nueva fila y columna en la matriz de adyacencia o agregar un nuevo nodo a la lista de adyacencia.
2. Añadir Arista: Establece una conexión entre dos nodos.
  • Proceso: Modificar la matriz de adyacencia o la lista de adyacencia para reflejar la nueva conexión.
3. Eliminar Nodo/Arco: Elimina un vértice o una conexión entre dos vértices.
  • Proceso: Eliminar la fila y columna correspondientes en la matriz de adyacencia o ajustar la lista de adyacencia.