This repository contains my complete homework submissions for CS300 - Data Structures at SabancΔ± University.
The course focused on the design, implementation, and analysis of fundamental and advanced data structures and algorithms in C++, with particular emphasis on efficiency, modular design, and problem-solving strategies.
π All assignments were developed, tested, and debugged using Xcode on macOS, showcasing my proficiency in using a modern IDE and toolchain for C++ software development.
Throughout this course and the work presented in this repository, I aimed to:
β
Implement key data structures from scratch (linked lists, trees, heaps, graphs, hash tables, disjoint sets).
β
Apply and analyze sorting algorithms with respect to time and space complexity.
β
Write efficient, clean, and modular C++ code suitable for reuse and extension.
β
Utilize Xcodeβs toolchain and debugging capabilities for development on macOS.
β
Understand and apply algorithmic complexity analysis (Big-O notation).
β
Solve problems involving graph traversal, priority queues, and balanced trees using custom code.
| Week | Topic |
|---|---|
| 1 | Overview and introduction |
| 2 | Algorithm complexity analysis |
| 3 | Linear data structures 1 β Linked lists |
| 4 | Linear data structures 2 β Stacks, queues |
| 5 | Trees 1 β Tries, binary search trees (BST) |
| 6 | Trees 2 β AVL trees, tree traversals |
| 7 | Hash tables |
| 8 | Heaps β Priority queues |
| 10 | Disjoint sets |
| 11 | Sorting 1 β Insertion sort, shell sort |
| 12 | Sorting 2 β Heap sort, merge sort, quick sort |
| 13 | Graphs 1 β Graph representations |
| 14 | Graphs 2 β Depth-first and breadth-first search |