سرفصل های دوره

۱ فصل
۲۵ جلسه
۱۸ ساعت
۱

لیست ویدئوهای دوره

۲۵ قسمت
۱۷:۳۳:۴۰
1

فصل اول - بخش یک -برنامه تجزیه و تحلیل حالت ورودی

رایگان
۴۶:۱۴
2

فصل اول - بخش دو -نماد های مجانبی

۴۲:۲۸
3

فصل اول - بخش سه -تابع بازگشتی

۰۱:۰۵:۱۷
4

فصل اول - بخش چهار -حل معادلات بازگشتی

۵۴:۵۱
5

فصل دوم- آرایه ها

۵۵:۴۸
6

فصل سوم - بخش یک - پشته

۴۴:۵۶
7

فصل سوم - بخش دو- عبارات محاسباتی

۰۱:۰۳:۳۵
8

فصل سوم - بخش سه -صف خطی

۰۱:۱۱:۵۶
9

فصل چهارم - بخش یک- لیست پیوندی

۰۱:۰۹:۱۶
10

فصل چهارم - بخش دو- لیست پیوندی

۰۱:۱۲:۴۱
11

فصل پنجم - بخش یک-درخت ها

۴۰:۳۲
12

فصل پنجم - بخش دو-درخت های دودویی

۵۷:۰۰
13

فصل پنجم - بخش سه-درخت های دودویی

۳۶:۰۴
14

فصل پنجم - بخش چهار-Heap درخت

۵۷:۰۷
15

فصل پنجم - بخش پنج-درخت جستجوی دودویی

۳۵:۱۷
16

فصل پنجم - بخش شش-AVL درخت

۳۸:۵۲
17

فصل ششم - بخش یک-نمایش گراف ها

۲۱:۵۲
18

فصل ششم - بخش دو-پیمایش گراف ها

۲۹:۱۳
19

فصل ششم - بخش سه-درخت پوشای کمینه

۲۱:۵۹
20

فصل هفتم - بخش یک-مرتب سازی

۲۹:۳۰
21

فصل هفتم - بخش دو-مرتب سازی حبابی

۲۰:۴۷
22

فصل هفتم - بخش سه-مرتب سازی انتخابی

۲۶:۳۸
23

فصل هفتم - بخش چهار-مرتب سازی ادغامی

۲۰:۲۱
24

فصل هفتم - بخش پنج-مرتب سازی سریع

۱۳:۴۳
25

فصل هفتم - بخش شش-مرتب سازی شمارشی

۱۷:۴۳

ساختمان داده‌ها یا Data Structure از جملهٔ بنیادی‌ترین مباحث مورد نیاز جهت یادگیری و درک بسیاری از مفاهیم عمده در علوم رایانه است. ساختمان داده ها روش های ذخیره داده ها در کامپیوتر با هدف دسترسی آسان تر و بهینه تر است، در حالیکه الگوریتم روشی به منظور حل مسئله به وسیله کامپیوتر می باشد. درس ساختمان داده ها یکی از دروس اصلی و پایه در رشته کامپیوتر است و قصد داریم در دوره آموزش ساختمان داده به صورت کامل و مفهومی آن را بررسی نماییم. شما عزیزان می توانید سرفصل ارائه شده در این دوره را در ادامه مشاهده نمایید.
امیدواریم این دوره بتواند تمام نیازهای دانشجویان و علاقه مندان عزیز را رفع نماید.

آموزش ساختمان داده دانشجویار مناسب چه افرادی است؟

  • دانشجویان رشته مهندسی کامپیوتر و علوم کامپیوتر: این دوره برای دانشجویان رشته مهندسی کامپیوتر و علوم کامپیوتر که در حال تحصیل در مقاطع کارشناسی، کارشناسی ارشد یا دکتری هستند، بسیار مناسب است. آنها می‌توانند به وسیله یادگیری ساختمان داده‌ها مفاهیم پایه و اصول این حوزه را فرا بگیرند و در طول تحصیل و کارآموزی های آتی از این اطلاعات بهره‌برداری کنند.
  • دانشجویان رشته فناوری اطلاعات و رشته‌های مرتبط: دوره آموزش ساختمان داده برای دانشجویان رشته فناوری اطلاعات و رشته‌های مرتبط نیز مناسب است. این دوره به آنها کمک می‌کند تا مهارت‌های لازم برای طراحی و پیاده‌سازی ساختمان داده‌ها را در محیط‌های فناوری اطلاعاتی مختلف بدست آورند.
  • برنامه‌نویسان حرفه‌ای: برنامه‌نویسانی که می‌خواهند به طور حرفه‌ای در زمینه برنامه‌نویسی فعالیت کنند، آموزش ساختمان داده را بسیار مفید خواهند یافت. این دوره به آنها کمک می‌کند تا مهارت‌های لازم برای انتخاب، پیاده‌سازی و بهینه‌سازی ساختمان داده‌ها را در طراحی و توسعه نرم‌افزارهای پیچیده بدست آورند.

سرفصل‌های دوره آموزش ساختمان داده

فصل اول: الگوریتم ها

  • تعریف الگوریتم
  • تفاوت الگوریتم و برنامه
  • تحلیل برنامه ها
  • حالت هاي ورودي
  • تحلیل پیچیدگی زمانی مرتب سازي درجی
  • نمایش بی اهمیت بودن ضرایب
  • نماد هاي مجانبی
  • تابع بازگشتی
  • مرتبه زمانی توابع بازگشتی
  • حل معادلات بازگشتی (روش جایگذاري، درخت بازگشت، تغییر متغیر با معادله شاخص _معادلات بازگشتی خطی همگن و غیر همگن، قضیه اصلی یا master theorem)

فصل دوم: آرایه ها

  • تعریف آرایه
  • ذخیره سازي آرایه
  • ماتریس ها (ماتریس بالا مثلثی، ماتریس پایین مثلثی، ماتریس اسپارس)
  • ترانهاده ماتریس اسپارس
  • ضرب ماتریس ها (محاسبه بهینه ترین تعداد ضرب در ضرب ماتریس ها)

فصل سوم: پشته و صف

  • تعریف پشته
  • پیاده سازي پشته ( توابع push , pop)
  • پشته دوگانه
  • تعریف عبارات محاسباتی (میانوندي – پسوندي – پیشوندي)
  • الگوریتم محاسبه مقدار عبارت پسوندي
  • تبدیل عبارات میانوندي به پسوندي (با پرانتزگذاري)
  • تبدیل عبارات میانوندي به پیشوندي (با پرانتزگذاري)
  • تبدیل عبارات میانوندي به پسوندي (با پشته)
  • تبدیل عبارات میانوندي به پیشوندي (با پشته)
  • تبدیل عبارات پسوندي به میانوندي (با پرانتزگذاري)
  • تبدیل عبارات پیشوندي به میانوندي (با پرانتزگذاري)
  • تبدیل عبارات پسوندي به میانوندي (با پشته)
  • تبدیل عبارات پیشوندي به میانوندي (با پشته)
  • تبدیل عبارت پسوندي به پیشوندي و برعکس
  • تعریف صف خطی
  • پیاده سازي صف خطی
  • تابع درج به صف خطی
  • تابع حذف از صف خطی
  • تعریف صف حلقوي
  • تابع درج به صف حلقوي
  • تابع حذف از صف حلقوي

فصل چهارم: لیست پیوندي

  • تعریف لیست پیوندي
  • پیاده سازي لیست پیوندي
  • اعمال اصلی لیست پیوندي (جستجو، درج در ابتدا، درج بعد از یک عنصر خاص، درج قبل از یک عنصر خاص، حذف، معکوس کردن لیست پیوندي، مرتب سازي حبابی لیست پیوندي)
  • تعریف لیست پیوندي حلقوي
  • جستجو در لیست پیوندي حلقوي
  • اعمال اصلی براي لیست پیوندي حلقوي
  • بررسی توابع اصلی لیست پیوندي براي حالت هاي مختلفfirst
  • تعریف لیست پیوندي دوطرفه
  • حذف از لیست پیوندي دوطرفه
  • درج به لیست پیوندي دوطرفه
  • پیاده سازي پشته و صف با لیست پیوندي (توابع push و pop برای پشته و insert و delete برای صف)

فصل پنجم: درخت ها

  • تعاریف اولیه
  • نمایش درخت ها (لیست پیوندي، فرزند چپ – همزاد راست، درخت درجه دو)
  • درخت هاي دودویی( تعاریف اولیه، نمایش با آرایه، نمایش با لیست پیوندي، پیمایش درخت دودویی ( پیش ترتیب – پس ترتیب – میان ترتیب )، درخت عبارت، به دست آوردن درخت از روي پیمایش ها)
  • الگوریتم هایی براي درخت دودویی: کپی کردن درخت، ارتفاع درخت، معکوس کردن درخت، محاسبه تعداد برگ هاي درخت، محاسبه تعداد گره هاي درخت
  • Heap درخت ( تعاریف اولیه، پیاده سازي، درج و حذف و جستجو در Heap، محاسبه تعداد اعداد بزرگتر از یک عدد خاص در Heap )
  • درخت جستجوي دودویی (تعاریف اولیه، درج و حذف و جستجو در BST، ارتفاع درخت BST)
  • AVL درخت (تعاریف اولیه، درج و حذف در AVL، انواع چرخش در AVL)
  • جنگل ها
  • تبدیل جنگل به درخت دودویی

فصل ششم: گراف ها

  • تعاریف اولیه
  • روش هاي نمایش گراف ها
  • پیمایش گراف ها ( BST – DFS )
  • درخت پوشا
  • درخت پوشاي کمینه
  • الگوریتم راشال
  • الگوریتم پرایم

فصل هفتم: مرتب سازي

  • تعاریف اولیه
  • مرتب سازي درجی
  • مرتب سازي حبابی
  • مرتب سازي انتخابی
  • مرتب سازي سریع
  • مرتب سازي شمارشی

براي هر کدام از مرتب سازي هاي فوق موارد زیر بیان شده است:

  1. روال الگوریتم روي یک مثال خاص
  2. کد ++C
  3. بررسی نکات الگوریتم ( پیچیدگی زمانی – نوع دسته بندي – بهترین ورودي – بدترین ورودي –پیچیدگی زمانی درحالت هاي مختلف ورودي)

معرفی ساختمان داده یا

همانطور که وبسایت edx نیز به آن اشاره کرده است؛ ساختمان داده (Data Structure) به مجموعه‌ای از روش‌ها، الگوریتم‌ها و قوانین است که برای ذخیره، سازماندهی و مدیریت داده‌ها در یک رایانه یا سیستم‌های دیگر استفاده می‌شود. ساختمان داده‌ها نحوه نگهداری و دسترسی به داده‌ها را تعیین می‌کنند و عملیاتی مانند اضافه کردن، حذف، جستجو و مرتب‌سازی را بر روی داده‌ها انجام می‌دهند.

دلیل اهمیت یادگیری ساختمان داده‌ها

اهمیت یادگیری و آموزش ساختمان داده‌ها به دلیل موارد زیر است:

  1. بهینه‌سازی عملیات: استفاده از ساختمان داده‌های مناسب به ما کمک می‌کند تا عملیات مختلف را به طور بهینه‌تر و با زمان اجرای کمتر انجام دهیم. این امر برای برنامه‌هایی که با حجم بزرگی از داده سروکار دارند و کارایی مهم است.
  2. حافظه‌ی بهتر: استفاده از ساختمان داده‌های مناسب می‌تواند کمک کند تا حافظه مورد نیاز برنامه کاهش یابد. این امر مخصوصاً برای سیستم‌هایی که با محدودیت‌های حافظه روبرو هستند مهم است.
  3. راهنمایی در طراحی الگوریتم: یادگیری ساختمان داده‌ها به ما در طراحی بهتر الگوریتم‌ها کمک می‌کند. انتخاب ساختمان داده صحیح می‌تواند منجر به الگوریتم‌های بهتر و کارآمدتر شود.

انواع ساختمان داده؟

انواع ساختمان داده‌ها به صورت کلی شامل موارد زیر هستند:

  1. آرایه (Array)
  2. لیست‌ها (Lists): شامل لیست پیوندی (Linked List)، لیست پیوندی دوطرفه (Doubly Linked List) و لیست پیوندی دور (Circular Linked List) می‌شود.
  3. صف (Queue)
  4. پشته (Stack)
  5. درخت‌ها (Trees): شامل درخت دودویی (Binary Tree)، درخت جستجو (Binary Search Tree) و درخت شجره‌ای (Tree) می‌شود.
  6. گراف (Graph)
  7. صفحه‌های هش (Hash Tables)
  8. صفحه‌های برگردان (Hash Tables with Chaining)

کاربردهای ساختمان داده چیست؟

ساختمان داده‌ها در بسیاری از زمینه‌ها و کاربردهای مختلف استفاده می‌شوند، از جمله:

  1. برنامه‌نویسی و توسعه نرم‌افزار
  2. پایگاه‌داده‌ها و سیستم‌های مدیریت داده
  3. شبکه‌های اجتمی، اینترنت و طراحی پروتکل‌ها
  4. الگوریتم‌ها و هوش مصنوعی
  5. سیستم‌های عامل و مدیریت حافظه
  6. گرافیک کامپیوتری و شبیه‌سازی‌ها
  7. بهینه‌سازی و بهینه‌سازی مسائل
  8. تحلیل الگوریتم‌ها و پیچیدگی زمانی

الگوریتم‌های مرتب‌سازی ساختمان داده

برخی از معروف‌ترین الگوریتم‌های مرتب‌سازی عبارتند از:

  1. مرتب‌سازی حبابی (Bubble Sort)
  2. مرتب‌سازی انتخابی (Selection Sort)
  3. مرتب‌سازی درجی (Insertion Sort)
  4. مرتب‌سازی ادغامی (Merge Sort)
  5. مرتب‌سازی سریع (Quick Sort)
  6. مرتب‌سازی تراکمی (Heap Sort)
  7. مرتب‌سازی شمارشی (Counting Sort)
  8. مرتب‌سازی مبنا (Radix Sort)

هر یک از این الگوریتم‌ها روش‌های مختلفی برای مرتب‌سازی داده‌ها ارائه می‌دهند با توجه به نوع ساختمان داده و نیاز‌ها. هر الگوریتم مزایا و معایب خود را دارد و بسته به مورد استفاده ممکن است یکی از آنها را انتخاب کنید.