ساختمان داده‌ها یا 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. بررسی نکات الگوریتم ( پیچیدگی زمانی – نوع دسته بندی – بهترین ورودی – بدترین ورودی –پیچیدگی زمانی درحالت های مختلف ورودی)