Estructura de datos y algoritmo (DSA)
El problema que se está aportando debe ser un archivo simple ( p. ej. kruskal-algorithm.cpp , linear-search.java ) o un directorio más complejo ( palindrome/ ). Este es un problem unitario.
El árbol de directorios tiene la siguiente convención de algorithms/{language}/{category}/{problem} , donde {language} representa el código de idioma del problema ( por ejemplo, CPlusPlus para C++, CSharp para C#, etc.), {category} es el tema o categoría del problema al que se contribuye ( por ejemplo, strings , sorting , linked-lists etc.), y {problem} es un nombre conforme al problema ( por ejemplo, linear-search.cpp , palindrome , queue-linked-list.cpp , etc.)
Un problem unitario debe cumplir con las siguientes especificaciones:
palindrome/ , binary-search.cpp etc.).- ).Si tiene un problema que pertenece a un tema o categoría nueva distinta a la presente:
README.md ).problem (Documentación de Markdown).- ) (por ejemplo, sorting strings , etc.) El archivo debe ajustarse a la especificación problem y a la extensión ( p. ej., linear-search.java , kruskal-algorithm.cpp , count-inversions.js , etc.)
Las contribuciones basadas en proyectos y carpetas tienen especificaciones de contribución un poco más estrictas.
La carpeta debe cumplir con la especificación problem , junto con las siguientes especificaciones.
Estructura de carpetas
problem-name
| - .gitignore
| - README.md
| - Makefile # or the specific specification/requirements/configuration file
| - src
| - main.extREADME.md Especificación/Plantilla # < Title of the Problem >
< description of the problem >
## Prerequisites
- prerequisite library or package
- [ prerequisite library ] ( https://www.example.com/link-to-official-library )
## Instructions
- instructions to run the project
- < Simple and reproducible commands to execute the project >
``` bash
make # or 'cargo run', or 'dotnet run' or 'mvn exec:java' etc.
```
## Test Cases & Output < if exists>
< If you can provide test cases, describe it here, else remove this section >.gitignore # add all output files and build files to be excluded from git tracking
main # executable file also must have the project name
target / # the build file, for example for rust Puede ser cualquiera de los siguientes
Makefilerequirements.txtpackage.json y package-lock.jsonCargo.toml y Cargo.lockgo.mod Los archivos de código fuente deben estar en la carpeta src/ ( por ejemplo, src/main.cpp o src/main.js ) o en la carpeta raíz ( por ejemplo, palindrome.go o App.java ), donde ext es la extensión del archivo para el archivo específico. lenguaje de programación.
Nuevamente, los códigos fuente deben ajustarse a una convención de estructura de archivos válida que impone el lenguaje de programación.
La programación debe mantener la regla de convención de nomenclatura de cada lenguaje de programación.
| Lenguaje de programación | Usuarios |
|---|---|
| C o C++ | @Arsenic-ATG, @UG-SEP, @aayushjain7, @Ashborn-SM, @Ashad001 |
| Java | @TawfikYasser, @aayushjain7, @mohitchakraverty |
| DO# | @ming-tsai, @Waqar-107 |
| Ir | @ayo-ajayi |
| Pitón | @Arsénico-ATG, @sridhar-5 |
| javascript | @ming-tsai |
MIT