This repository was created as part of my Teaching Assistantship for the Data Structures and Algorithms course. The algorithms and methods implemented here are primarily based on the textbook Data Structures and Algorithms by Olcay Taner Yıldız.
The purpose of this repository is to help students:
- Understand fundamental data structures and their implementations.
- Develop new methods to manipulate these structures.
- Practice debugging and testing their code with diverse test cases.
- Certain edge cases, particularly those related to input constraints, have not been handled.
- Some assumptions were made to simplify implementations, as the primary goal is to teach the core concepts.
- Inheritance was intentionally avoided to maintain clarity, despite potential code repetition.
The repository also includes a Slides directory with presentation materials used in weekly revision sessions.
| Directory | Classes |
|---|---|
| Basics | DoubleNode, Element, Node |
| BinaryTree | BinaryTree, TreeNode |
| DisjointSet | DisjointSet, Set, SetTest |
| Graph | Edge, EdgeList, GraphList, GraphMatrix, GraphTest |
| Hashing | HashMap, LinkedHashMap, HashMapTest |
| Heap | Heap, HeapNode, HeapTest |
| LinkedList | CircularList, DoubleList, LinkedList, LinkedListTest |
| Queue | QueueArray, QueueLinked, QueueTest |
| Stack | StackArray, StackLinked, StackTest |
| Sorting | Still in development |
-
Clone the repository:
git clone https://github.com/neslihancesurr/data-structures.git
-
Navigate to the project directory:
cd data-structures -
Explore the implementations within the directories listed above.
Contributions are welcome! If you'd like to add new algorithms, improve existing implementations, or update the documentation, feel free to submit a pull request.
Happy practising! 😊