Este repositorio contiene ejemplos de algoritmos y estructuras de datos implementados en Go (Golang). Está diseñado para ayudar a los desarrolladores a familiarizarse con conceptos básicos de algoritmia y proporcionar pruebas unitarias para asegurar la funcionalidad de los algoritmos.
├── cmd
├── config
├── internal
│ ├── application
│ │ ├── src
│ │ │ ├── algorithms
│ │ │ │ ├── basic_problems
│ │ │ │ ├── recursion
│ │ │ │ │ ├── binary_search_recursive
│ │ │ │ │ ├── factorial
│ │ │ │ │ ├── fibonacci
│ │ │ │ │ └── summation
│ │ │ │ ├── searching
│ │ │ │ │ └── binary_search
│ │ │ │ └── simple_linked_list_applications
│ │ │ └── data_structures
│ │ │ ├── circular_linked_list
│ │ │ ├── double_linked_list
│ │ │ ├── linked_list
│ │ │ ├── lista_ligada
│ │ │ ├── queue
│ │ │ │ ├── applications
│ │ │ │ └── implementations
│ │ │ │ ├── array
│ │ │ │ └── linkedlist
│ │ │ └── stack
│ │ │ ├── applications
│ │ │ │ └── parenthesis_validation
│ │ │ ├── array
│ │ │ ├── double_linked_list
│ │ │ └── linkedlist
│ │ └── test
│ │ └── application
│ │ ├── algorithms
│ │ │ ├── basic_problems
│ │ │ ├── recursion
│ │ │ │ ├── binary_search_test
│ │ │ │ ├── factorial_test
│ │ │ │ ├── fibonacci_test
│ │ │ │ └── summation_test
│ │ │ ├── searching
│ │ │ │ └── binary_search_test
│ │ │ └── simple_linked_list_applications
│ │ └── data_structures
│ │ ├── queue
│ │ ├── simple_linked_list
│ │ └── stack
│ │ └── applications
│ ├── domain
│ └── infrastructure
└── pkg
└── middleware
- cmd: Aquí se pueden encontrar los comandos para ejecutar la aplicación o pruebas.
- config: Archivos de configuración necesarios para la aplicación.
- internal: Contiene la lógica de la aplicación, dividida en subcarpetas para facilitar la organización:
- application/src: Implementaciones de algoritmos y estructuras de datos.
- application/test: Pruebas unitarias asociadas a los algoritmos y estructuras de datos.
- domain: Modelos de dominio que representan las entidades de negocio.
- infrastructure: Implementaciones de infraestructura, como la conexión a bases de datos.
- pkg: Paquetes reutilizables, en este caso, middleware que se puede utilizar en la aplicación.
- Binary Search (Recursivo): Implementación del algoritmo de búsqueda binaria utilizando recursión.
- Factorial: Cálculo del factorial de un número utilizando recursión.
- Fibonacci: Generación de la secuencia de Fibonacci a través de una función recursiva.
- Summation: Suma de una serie de números utilizando un enfoque recursivo.
- Listas Enlazadas: Implementaciones de listas enlazadas simples, dobles y circulares.
- Colas: Implementaciones de colas utilizando arreglos y listas enlazadas, junto con aplicaciones prácticas.
- Pilas: Implementación de pilas y su uso en la validación de paréntesis.
Cada algoritmo y estructura de datos incluye pruebas unitarias para garantizar su correcto funcionamiento. Estas pruebas se encuentran en la carpeta internal/application/test
.
Para ejecutar las pruebas, asegúrate de tener Go instalado y utiliza el siguiente comando en la raíz del repositorio:
go test ./internal/application/test/...
o cambios específicos, ¡hazmelo saber!
Si deseas contribuir a este proyecto, no dudes en abrir un Pull Request o crear un problema en el repositorio. Las contribuciones son bienvenidas.
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.