Proyecto final de Ciencias de la Computación 2 que implementa diversas estructuras de datos y algoritmos de búsqueda.
- Búsqueda Lineal: Búsqueda secuencial en estructuras no ordenadas
- Búsqueda Binaria: Búsqueda eficiente en estructuras ordenadas
- Tablas Hash: Con múltiples funciones hash y estrategias de resolución de colisiones
Las búsquedas externas organizan los datos en bloques utilizando la fórmula ⌊√n⌋ para determinar:
- Elementos por bloque: ⌊√capacidad⌋
- Número de bloques: ⌈capacidad / elementos_por_bloque⌉
Organiza elementos en bloques secuenciales. Búsqueda lineal dentro de cada bloque.
Organiza elementos ordenados en bloques. Primero busca el bloque correcto, luego búsqueda binaria dentro del bloque.
Las funciones hash externas determinan el bloque donde insertar/buscar un elemento. Se implementan 5 funciones hash:
- Hash Módulo:
hash(clave) = clave % número_de_bloques - Hash Cuadrado: Eleva la clave al cuadrado y extrae dígitos del centro
- Hash Plegamiento: Divide la clave en grupos, los suma y aplica módulo
- Hash Truncamiento: Selecciona dígitos en posiciones pares
- Hash Cambio de Base: Convierte la clave a base 2-9 y extrae dígitos
Estrategias de resolución de colisiones:
- Estructura Secundaria: Bloques secundarios paralelos
- Área de Colisiones: Área adicional dentro de cada bloque
Tablas hash que se expanden/reducen automáticamente según la densidad de ocupación:
- Expansión: Cuando ocupación ≥ 75%
- Reducción: Cuando densidad ≤ 0.8 registros/cubeta
- Reconstrucción de cubeta: Al eliminar, los elementos se compactan automáticamente
- Validación de claves: Tamaño obligatorio de dígitos
📖 Documentación detallada: Ver
docs/README_BUSQUEDAS_EXTERNAS.md
- Residuo Simple: Árbol binario de residuos
- Residuo Múltiple: Árbol n-ario basado en residuos con base configurable
- Residuo Digital: Árbol digital de residuos
- Residuo Huffman: Árbol de Huffman con códigos optimizados
- Insertar: Agregar elementos a la estructura
- Buscar: Localizar elementos en la estructura
- Eliminar: Remover elementos de la estructura
Todas las estructuras soportan:
- Exportar: Guardar la estructura completa en formato JSON
- Importar: Cargar estructura desde archivo JSON con validación estricta
La validación de importación asegura que:
- El tipo de estructura coincida exactamente
- La configuración (capacidad, dígitos, función hash, etc.) sea válida
- Los datos tengan el formato correcto
- Para hash externas: la función hash y base (si aplica) coincidan
- Vue 3: Framework de JavaScript para la interfaz
- TypeScript: Tipado estático para mayor seguridad
- Vite: Herramienta de construcción rápida
- Pico CSS: Framework CSS minimalista
# Instalar dependencias
cd frontend
pnpm install
# Ejecutar en modo desarrollo
pnpm dev
# Construir para producción
pnpm buildProyecto desarrollado como parte del curso de Ciencias de la Computación 2