ÁRBOLES GENÉRICOS

Estructuras de Datos y DOM

Comprendiendo la organización jerárquica de la información en programación.

¿QUÉ ES UN ÁRBOL GENÉRICO?

Un árbol genérico es una estructura de datos no lineal utilizada para organizar información de forma jerárquica. A diferencia de otras estructuras como listas o arreglos, los árboles permiten representar relaciones padre-hijo de forma natural. Cada nodo puede contener múltiples hijos, lo que brinda una enorme flexibilidad para modelar estructuras reales como sistemas de archivos, páginas web, organigramas, videojuegos y documentos HTML.

  • Existe una raíz principal
  • Cada nodo puede tener varios hijos
  • Representa relaciones jerárquicas
  • No existen ciclos

ELEMENTOS PRINCIPALES

  • Raíz: Nodo principal
  • Padre: Nodo que contiene hijos
  • Hijo: Nodo dependiente
  • Hoja: Nodo sin hijos
  • Nivel: Distancia desde la raíz

EJEMPLO REAL

Un sistema operativo organiza sus carpetas utilizando estructuras similares a árboles genéricos. Cada carpeta puede contener archivos o más carpetas internas.

Sistema de Carpetas

Documentos
│
├── Cursos
│   ├── IoT
│   └── Web
│
├── Fotos
│   ├── Viajes
│   └── Familia
│
└── Música

ÁRBOL GENÉRICO vs BINARIO

Característica Árbol Genérico Árbol Binario
Hijos Ilimitados Máximo 2
Flexibilidad Alta Media
Uso DOM, XML, Carpetas Búsquedas

IMPLEMENTACIÓN EN PYTHON

En Python podemos representar un árbol genérico utilizando clases y listas dinámicas. Cada nodo almacenará un dato y una colección de hijos.


class Nodo:

    def __init__(self, dato):
        self.dato = dato
        self.hijos = []

    def agregar_hijo(self, hijo):
        self.hijos.append(hijo)


# Crear raíz
raiz = Nodo('Documentos')

# Crear nodos principales
cursos = Nodo('Cursos')
fotos = Nodo('Fotos')
musica = Nodo('Musica')

# Agregar hijos a la raíz
raiz.agregar_hijo(cursos)
raiz.agregar_hijo(fotos)
raiz.agregar_hijo(musica)

# Agregar subcarpetas
cursos.agregar_hijo(Nodo('IoT'))
cursos.agregar_hijo(Nodo('Web'))

fotos.agregar_hijo(Nodo('Viajes'))
fotos.agregar_hijo(Nodo('Familia'))

print('Árbol creado correctamente')

RECORRIDO PREORDEN

El recorrido Preorden visita primero el nodo actual y luego continúa recorriendo todos sus hijos. Este recorrido es ampliamente utilizado en compiladores, procesamiento de documentos HTML y motores de videojuegos.


def recorrer(nodo):

    print(nodo.dato)

    for hijo in nodo.hijos:
        recorrer(hijo)


# Ejecutar recorrido
recorrer(raiz)

# Salida esperada:
# Documentos
# Cursos
# IoT
# Web
# Fotos
# Viajes
# Familia
# Musica

EL DOM COMO ÁRBOL GENÉRICO

El DOM (Document Object Model) es la representación estructurada que realiza el navegador sobre un documento HTML. Internamente, cada etiqueta HTML se convierte en un nodo dentro de un árbol genérico. Gracias a esto, JavaScript puede navegar, modificar y manipular dinámicamente cada elemento de la página web.

  • Cada etiqueta HTML es un nodo
  • Las etiquetas pueden contener hijos
  • La raíz principal es <html>
  • JavaScript recorre el árbol DOM

EJEMPLO HTML

El siguiente código HTML será interpretado por el navegador y convertido automáticamente en un árbol DOM.



  
    

Hola Mundo

Texto

REPRESENTACIÓN DEL DOM

html
└── body
    ├── h1
    └── div
        └── p

Cada elemento HTML se convierte en un nodo dentro del árbol DOM.

DOM + JAVASCRIPT


// Seleccionar el título principal
const titulo = document.querySelector('h1');

// Modificar texto
titulo.innerText = 'Nuevo Título';

// Cambiar color
titulo.style.color = 'cyan';

// Crear nuevo elemento
const nuevoParrafo = document.createElement('p');
nuevoParrafo.innerText = 'Elemento agregado dinámicamente';

// Agregar elemento al body
document.body.appendChild(nuevoParrafo);
  • Buscar elementos
  • Modificar contenido
  • Agregar nodos
  • Eliminar nodos
  • Cambiar estilos dinámicamente

APLICACIONES REALES

  • Sistemas de archivos
  • DOM y páginas web
  • XML y JSON
  • Videojuegos
  • Organigramas
  • Redes sociales

RESUMEN FINAL

Los árboles genéricos son una de las estructuras de datos más importantes en ciencias de la computación. Su capacidad para representar jerarquías los convierte en la base de múltiples tecnologías modernas.

  • Los árboles genéricos organizan información jerárquicamente
  • Cada nodo puede tener múltiples hijos
  • El DOM es un árbol genérico real
  • Son esenciales en programación moderna

¡GRACIAS!

Preguntas y Respuestas