بنية البيانات والخوارزمية (DSA)
المشكلة التي يتم المساهمة بها يجب أن تكون إما ملفًا بسيطًا ( على سبيل المثال kruskal-algorithm.cpp , linear-search.java ) أو دليل أكثر تعقيدًا ( palindrome/ ). هذه problem الوحدة.
تحتوي شجرة الدليل على الاصطلاح التالي algorithms/{language}/{category}/{problem} ، حيث تمثل {language} رمز لغة المشكلة ( على سبيل المثال CPlusPlus لـ C++، و CSharp لـ C# وما إلى ذلك)، و {category} هو موضوع أو فئة المشكلة التي يتم المساهمة بها ( على سبيل المثال strings , sorting , linked-lists وما إلى ذلك)، و {problem} هو اسم مطابق للمشكلة ( على سبيل المثال. linear-search.cpp ، palindrome ، queue-linked-list.cpp وما إلى ذلك)
يجب أن تكون problem الوحدة مطابقة للمواصفات التالية:
palindrome/ ، binary-search.cpp وما إلى ذلك).- ).إذا كانت لديك مشكلة تنتمي إلى موضوع أو فئة جديدة غير تلك الموجودة:
README.md ).problem (وثائق Markdown).- ) فقط (على سبيل المثال، sorting strings وما إلى ذلك). يجب أن يتوافق الملف مع مواصفات problem والامتداد ( على سبيل المثال، linear-search.java ، kruskal-algorithm.cpp ، count-inversions.js وما إلى ذلك)
تتمتع المساهمات المستندة إلى المشروع والمجلدات بمواصفات مساهمة أكثر صرامة.
يجب أن يتوافق المجلد مع مواصفات problem ، بالإضافة إلى المواصفات التالية
هيكل المجلد
problem-name
| - .gitignore
| - README.md
| - Makefile # or the specific specification/requirements/configuration file
| - src
| - main.extREADME.md # < 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 يمكن أن يكون أيًا مما يلي
Makefilerequirements.txtpackage.json و package-lock.jsonCargo.toml و Cargo.lockgo.mod يجب أن تكون ملفات التعليمات البرمجية المصدر إما في مجلد src/ ( على سبيل المثال src/main.cpp أو src/main.js ) أو المجلد الجذر ( على سبيل المثال palindrome.go أو App.java ) حيث يكون ext هو امتداد الملف المحدد لغة البرمجة.
مرة أخرى، يجب أن تتوافق أكواد المصدر مع اتفاقية بنية الملف الصالحة التي تفرضها لغة البرمجة.
يجب أن تحافظ البرمجة على قاعدة اصطلاح التسمية لكل لغة برمجة.
| لغة البرمجة | المستخدمين |
|---|---|
| سي أو سي++ | @Arsenic-ATG، @UG-SEP، @aayushjain7، @Ashborn-SM، @Ashad001 |
| جافا | @توفيق ياسر، @aayushjain7، @mohitchakraverty |
| ج # | @ming-tsai، @Waqar-107 |
| يذهب | @ ayo-ajayi |
| بايثون | @الزرنيخ-ATG، @sridhar-5 |
| جافا سكريبت | @ مينغ تساي |
معهد ماساتشوستس للتكنولوجيا