|
2 | 2 | A repository to store different types of Data-Structure & Algorithms for educational and research purposes. |
3 | 3 |
|
4 | 4 | This repository is divided into 2 parts: |
5 | | -- [`DataStructure`](DataStructure): Contains the Data Structure |
6 | | -- [`Algorithms`](Algorithms): Contains Alorithms. |
| 5 | +- [`/DataStructure`](DataStructure): Contains the Data Structure |
| 6 | +- [`/Algorithms`](Algorithms): Contains Alorithms. |
7 | 7 |
|
8 | 8 | Each has its own hierarchy system. The hierarchy is _strict_, and must be followed. |
9 | 9 |
|
10 | 10 | ## Hierarchy & Rules |
11 | 11 | - Directory names should be in `PascalCase`. |
12 | 12 | - There could be links to and from the Algorithms or DataStructure dir to link related things. |
13 | | -- The heirarchy should follow |
14 | | - |
15 | | - | Location | Purpose | |
16 | | - |--------------------------------------------------------------|--------------------------------------------------------------------| |
17 | | - |`/Algorithms/AlgorithmCategory/AlgorithmName/` | Store all about the algorithm (code, information, assets) | |
18 | | - |`/Algorithms/AlgorithmCategory/AlgorithmName/README.md` | Information, pseudocode and explaination of the Algorithm | |
19 | | - |`/DataStructure/Category/SubCategory/../Name/` | Store all about the data-structure (implementation, info, assets) | |
20 | | - |`/DataStructure/Category/SubCategory/../Name/README.md` | Information, diagram, and explanation of the Data-Structure | |
21 | | - |
22 | | -- The data structure's heirarchy could be as follows |
23 | | - ``` |
24 | | - DataStructure |
25 | | - │ |
26 | | - ├── Linear Data Structures |
27 | | - │ ├── Arrays |
28 | | - │ ├── Linked Lists |
29 | | - │ ├── Stacks |
30 | | - │ └── Queues |
31 | | - │ |
32 | | - ├── Non-Linear Data Structures |
33 | | - │ ├── Trees |
34 | | - │ │ ├── Binary Trees |
35 | | - │ │ ├── Binary Search Trees (BST) |
36 | | - │ │ ├── AVL Trees |
37 | | - │ │ └── Red-Black Trees |
38 | | - │ │ |
39 | | - │ └── Graphs |
40 | | - │ ├── Directed Graphs (Digraphs) |
41 | | - │ └── Weighted Graphs |
| 13 | + |
| 14 | +## `/Algorithms` |
| 15 | +The `/Algorithms` directory is organized to accommodate various algorithm implementations, information, explanations, and supplementary details. |
| 16 | + |
| 17 | +Within `/Algorithms`, the following subdirectories represent different categories of algorithms: |
| 18 | + |
| 19 | +- **`/Sort`**: Contains algorithms for sorting data. |
| 20 | +- **`/Search`**: Includes algorithms for searching within a list. |
| 21 | +- **`/Utils`**: Houses algorithms that serve multiple purposes. |
| 22 | + |
| 23 | +Each category directory (`/Sort`, `/Search`, `/Utils`) further includes directories for specific algorithms. |
| 24 | + |
| 25 | +### Algorithm Directory Template |
| 26 | + |
| 27 | +```plaintext |
| 28 | +AlgorithmName/ |
42 | 29 | │ |
43 | | - ├── Hash-Based Data Structures |
44 | | - │ ├── Hash Tables |
45 | | - │ ├── Hash Maps |
46 | | - │ └── Hash Sets |
| 30 | + ├── README.md // Containing Pseudocode |
47 | 31 | │ |
48 | | - └── Specialized Data Structures |
49 | | - ├── Heaps |
50 | | - ├── Trie |
51 | | - ├── Bloom Filter |
52 | | - └── Skip Lists |
53 | | - |
54 | | - ``` |
55 | | -## Contributions |
| 32 | + └── AlgorithmName.xxx // (optional) Code implementation (.xxx is extention like java, cpp) |
| 33 | +``` |
| 34 | + |
| 35 | +## `/DataStructure` |
56 | 36 |
|
57 | | -We welcome contributions from everyone! Here are some ways you can contribute to our project: |
| 37 | +The `/DataStructure` directory is structured to house various data structure implementations, information, explanations, and supporting materials. |
58 | 38 |
|
59 | | -### Issues |
| 39 | +Within `/DataStructure`, different categories represent various types of data structures: |
60 | 40 |
|
61 | | -- Report bugs or suggest enhancements by creating GitHub issues. |
62 | | -- Ensure the issue hasn't already been reported by checking the existing ones. |
| 41 | +- **`/Linear`**: Contains implementations of linear data structures. |
| 42 | +- **`/NonLinear`**: Encompasses implementations of non-linear data structures. |
| 43 | +- **`/HashBased`**: Stores implementations of hash-based data structures. |
| 44 | +- **`/Specialized`**: Includes specialized data structures. |
63 | 45 |
|
64 | | -### Pull Requests (PRs) |
| 46 | +Each category directory (`/Linear`, `/NonLinear`, `/HashBased`, `/Specialized`) further contains subdirectories for subcategories of data structures or specific data structures. |
65 | 47 |
|
66 | | -- Fork the repository, make changes, and submit Pull Requests for review. |
67 | | -- Make sure your PRs are focused and address a single concern. |
68 | | -- Adhere to the `code style` and `project conventions`. |
| 48 | +### DataStructure Directory Template |
69 | 49 |
|
70 | | -### Code Reviews |
| 50 | +```plaintext |
| 51 | +DataStructureName/ |
| 52 | + │ |
| 53 | + ├── README.md // Containing description & diagram or the structure |
| 54 | + │ |
| 55 | + └── DataStrucureName.xxx // (optional) Code implementation (.xxx is extention like java, cpp) |
| 56 | +``` |
71 | 57 |
|
72 | | -- Review Pull Requests from others. |
73 | | -- Provide constructive feedback and help improve code quality. |
| 58 | +## Contributions |
74 | 59 |
|
75 | | -### Documentation |
| 60 | +We welcome contributions! Here's how you can contribute to our project: |
76 | 61 |
|
77 | | -- Help improve the project's documentation. |
78 | | -- Add or update README, guides, or other documentation files. |
| 62 | +- **Report Issues:** Help by reporting bugs or suggesting enhancements. Check existing issues before creating a new one. |
79 | 63 |
|
80 | | -### Spread the Word |
| 64 | +- **Pull Requests (PRs):** Submit focused PRs for review. Remember to follow the [_code style_](STANDARD.md). |
81 | 65 |
|
82 | | -- Star the repository if you find it useful. |
83 | | -- Share it on social media or with your networks to help others discover it. |
| 66 | +- **Code Reviews:** Review PRs from others. Offer constructive feedback to improve code quality. |
84 | 67 |
|
85 | 68 | For more detailed guidelines, please refer to our [Contribution Guide](CONTRIBUTING.md). |
86 | 69 |
|
87 | | -Thank you for considering contributing to our project! Every contribution is highly appreciated. 🎉 |
| 70 | +Your contributions are highly appreciated! 🎉 |
0 commit comments