سرفصل های دوره:
1. مقدمه ای بر ساختمان داده ها و الگوریتم ها
2. چرا ساختمان داده ها و الگوریتم ها مهم هستند؟
3. پیچیدگی زمانی و فضایی: O بزرگ
4. تحلیل الگوریتم ها: روش های مختلف
5. ساختمان داده های اولیه: آرایه ها
6. عملیات بر روی آرایه ها: درج، حذف، جستجو
7. آرایه های پویا (Dynamic Arrays)
8. محدودیت های آرایه ها
9. ساختمان داده های اولیه: لیست های پیوندی
10. لیست های پیوندی یک طرفه
11. عملیات بر روی لیست های پیوندی یک طرفه
12. لیست های پیوندی دو طرفه
13. عملیات بر روی لیست های پیوندی دو طرفه
14. لیست های پیوندی دایره ای
15. کاربرد لیست های پیوندی
16. ساختمان داده های اولیه: پشته ها (Stacks)
17. عملیات بر روی پشته ها: Push و Pop
18. پیاده سازی پشته با آرایه
19. پیاده سازی پشته با لیست پیوندی
20. کاربرد پشته ها: ارزیابی عبارات، فراخوانی توابع
21. ساختمان داده های اولیه: صف ها (Queues)
22. عملیات بر روی صف ها: Enqueue و Dequeue
23. پیاده سازی صف با آرایه
24. پیاده سازی صف با لیست پیوندی
25. صف های دو طرفه (Deques)
26. کاربرد صف ها: زمانبندی، شبیه سازی
27. ساختمان داده های اولیه: درخت ها (Trees)
28. مفاهیم پایه درخت: ریشه، گره، فرزند، والد، برگ
29. درخت های دودویی (Binary Trees)
30. پیمایش درخت دودویی: Pre-order, In-order, Post-order
31. درخت های جستجوی دودویی (Binary Search Trees - BST)
32. عملیات بر روی BST: درج، حذف، جستجو
33. ...