ساختمان دادهها یا Data Structure از جملهٔ بنیادیترین مباحث مورد نیاز جهت یادگیری و درک بسیاری از مفاهیم عمده در علوم رایانه است. ساختمان داده ها روش های ذخیره داده ها در کامپیوتر با هدف دسترسی آسان تر و بهینه تر است، در حالیکه الگوریتم روشی به منظور حل مسئله به وسیله کامپیوتر می باشد. درس ساختمان داده ها یکی از دروس اصلی و پایه در رشته کامپیوتر است و قصد داریم در دوره آموزش ساختمان داده به صورت کامل و مفهومی آن را بررسی نماییم. شما عزیزان می توانید سرفصل ارائه شده در این دوره را در ادامه مشاهده نمایید.
امیدواریم این دوره بتواند تمام نیازهای دانشجویان و علاقه مندان عزیز را رفع نماید.
آموزش ساختمان داده دانشجویار مناسب چه افرادی است؟
- دانشجویان رشته مهندسی کامپیوتر و علوم کامپیوتر: این دوره برای دانشجویان رشته مهندسی کامپیوتر و علوم کامپیوتر که در حال تحصیل در مقاطع کارشناسی، کارشناسی ارشد یا دکتری هستند، بسیار مناسب است. آنها میتوانند به وسیله یادگیری ساختمان دادهها مفاهیم پایه و اصول این حوزه را فرا بگیرند و در طول تحصیل و کارآموزی های آتی از این اطلاعات بهرهبرداری کنند.
- دانشجویان رشته فناوری اطلاعات و رشتههای مرتبط: دوره آموزش ساختمان داده برای دانشجویان رشته فناوری اطلاعات و رشتههای مرتبط نیز مناسب است. این دوره به آنها کمک میکند تا مهارتهای لازم برای طراحی و پیادهسازی ساختمان دادهها را در محیطهای فناوری اطلاعاتی مختلف بدست آورند.
- برنامهنویسان حرفهای: برنامهنویسانی که میخواهند به طور حرفهای در زمینه برنامهنویسی فعالیت کنند، آموزش ساختمان داده را بسیار مفید خواهند یافت. این دوره به آنها کمک میکند تا مهارتهای لازم برای انتخاب، پیادهسازی و بهینهسازی ساختمان دادهها را در طراحی و توسعه نرمافزارهای پیچیده بدست آورند.
سرفصلهای دوره آموزش ساختمان داده
فصل اول: الگوریتم ها
- تعریف الگوریتم
- تفاوت الگوریتم و برنامه
- تحلیل برنامه ها
- حالت هاي ورودي
- تحلیل پیچیدگی زمانی مرتب سازي درجی
- نمایش بی اهمیت بودن ضرایب
- نماد هاي مجانبی
- تابع بازگشتی
- مرتبه زمانی توابع بازگشتی
- حل معادلات بازگشتی (روش جایگذاري، درخت بازگشت، تغییر متغیر با معادله شاخص _معادلات بازگشتی خطی همگن و غیر همگن، قضیه اصلی یا master theorem)
فصل دوم: آرایه ها
- تعریف آرایه
- ذخیره سازي آرایه
- ماتریس ها (ماتریس بالا مثلثی، ماتریس پایین مثلثی، ماتریس اسپارس)
- ترانهاده ماتریس اسپارس
- ضرب ماتریس ها (محاسبه بهینه ترین تعداد ضرب در ضرب ماتریس ها)
فصل سوم: پشته و صف
- تعریف پشته
- پیاده سازي پشته ( توابع push , pop)
- پشته دوگانه
- تعریف عبارات محاسباتی (میانوندي – پسوندي – پیشوندي)
- الگوریتم محاسبه مقدار عبارت پسوندي
- تبدیل عبارات میانوندي به پسوندي (با پرانتزگذاري)
- تبدیل عبارات میانوندي به پیشوندي (با پرانتزگذاري)
- تبدیل عبارات میانوندي به پسوندي (با پشته)
- تبدیل عبارات میانوندي به پیشوندي (با پشته)
- تبدیل عبارات پسوندي به میانوندي (با پرانتزگذاري)
- تبدیل عبارات پیشوندي به میانوندي (با پرانتزگذاري)
- تبدیل عبارات پسوندي به میانوندي (با پشته)
- تبدیل عبارات پیشوندي به میانوندي (با پشته)
- تبدیل عبارت پسوندي به پیشوندي و برعکس
- تعریف صف خطی
- پیاده سازي صف خطی
- تابع درج به صف خطی
- تابع حذف از صف خطی
- تعریف صف حلقوي
- تابع درج به صف حلقوي
- تابع حذف از صف حلقوي
فصل چهارم: لیست پیوندي
- تعریف لیست پیوندي
- پیاده سازي لیست پیوندي
- اعمال اصلی لیست پیوندي (جستجو، درج در ابتدا، درج بعد از یک عنصر خاص، درج قبل از یک عنصر خاص، حذف، معکوس کردن لیست پیوندي، مرتب سازي حبابی لیست پیوندي)
- تعریف لیست پیوندي حلقوي
- جستجو در لیست پیوندي حلقوي
- اعمال اصلی براي لیست پیوندي حلقوي
- بررسی توابع اصلی لیست پیوندي براي حالت هاي مختلفfirst
- تعریف لیست پیوندي دوطرفه
- حذف از لیست پیوندي دوطرفه
- درج به لیست پیوندي دوطرفه
- پیاده سازي پشته و صف با لیست پیوندي (توابع push و pop برای پشته و insert و delete برای صف)
فصل پنجم: درخت ها
- تعاریف اولیه
- نمایش درخت ها (لیست پیوندي، فرزند چپ – همزاد راست، درخت درجه دو)
- درخت هاي دودویی( تعاریف اولیه، نمایش با آرایه، نمایش با لیست پیوندي، پیمایش درخت دودویی ( پیش ترتیب – پس ترتیب – میان ترتیب )، درخت عبارت، به دست آوردن درخت از روي پیمایش ها)
- الگوریتم هایی براي درخت دودویی: کپی کردن درخت، ارتفاع درخت، معکوس کردن درخت، محاسبه تعداد برگ هاي درخت، محاسبه تعداد گره هاي درخت
- Heap درخت ( تعاریف اولیه، پیاده سازي، درج و حذف و جستجو در Heap، محاسبه تعداد اعداد بزرگتر از یک عدد خاص در Heap )
- درخت جستجوي دودویی (تعاریف اولیه، درج و حذف و جستجو در BST، ارتفاع درخت BST)
- AVL درخت (تعاریف اولیه، درج و حذف در AVL، انواع چرخش در AVL)
- جنگل ها
- تبدیل جنگل به درخت دودویی
فصل ششم: گراف ها
- تعاریف اولیه
- روش هاي نمایش گراف ها
- پیمایش گراف ها ( BST – DFS )
- درخت پوشا
- درخت پوشاي کمینه
- الگوریتم راشال
- الگوریتم پرایم
فصل هفتم: مرتب سازي
- تعاریف اولیه
- مرتب سازي درجی
- مرتب سازي حبابی
- مرتب سازي انتخابی
- مرتب سازي سریع
- مرتب سازي شمارشی
براي هر کدام از مرتب سازي هاي فوق موارد زیر بیان شده است:
- روال الگوریتم روي یک مثال خاص
- کد ++C
- بررسی نکات الگوریتم ( پیچیدگی زمانی – نوع دسته بندي – بهترین ورودي – بدترین ورودي –پیچیدگی زمانی درحالت هاي مختلف ورودي)
معرفی ساختمان داده یا
همانطور که وبسایت edx نیز به آن اشاره کرده است؛ ساختمان داده (Data Structure) به مجموعهای از روشها، الگوریتمها و قوانین است که برای ذخیره، سازماندهی و مدیریت دادهها در یک رایانه یا سیستمهای دیگر استفاده میشود. ساختمان دادهها نحوه نگهداری و دسترسی به دادهها را تعیین میکنند و عملیاتی مانند اضافه کردن، حذف، جستجو و مرتبسازی را بر روی دادهها انجام میدهند.
دلیل اهمیت یادگیری ساختمان دادهها
اهمیت یادگیری و آموزش ساختمان دادهها به دلیل موارد زیر است:
- بهینهسازی عملیات: استفاده از ساختمان دادههای مناسب به ما کمک میکند تا عملیات مختلف را به طور بهینهتر و با زمان اجرای کمتر انجام دهیم. این امر برای برنامههایی که با حجم بزرگی از داده سروکار دارند و کارایی مهم است.
- حافظهی بهتر: استفاده از ساختمان دادههای مناسب میتواند کمک کند تا حافظه مورد نیاز برنامه کاهش یابد. این امر مخصوصاً برای سیستمهایی که با محدودیتهای حافظه روبرو هستند مهم است.
- راهنمایی در طراحی الگوریتم: یادگیری ساختمان دادهها به ما در طراحی بهتر الگوریتمها کمک میکند. انتخاب ساختمان داده صحیح میتواند منجر به الگوریتمهای بهتر و کارآمدتر شود.
انواع ساختمان داده؟
انواع ساختمان دادهها به صورت کلی شامل موارد زیر هستند:
- آرایه (Array)
- لیستها (Lists): شامل لیست پیوندی (Linked List)، لیست پیوندی دوطرفه (Doubly Linked List) و لیست پیوندی دور (Circular Linked List) میشود.
- صف (Queue)
- پشته (Stack)
- درختها (Trees): شامل درخت دودویی (Binary Tree)، درخت جستجو (Binary Search Tree) و درخت شجرهای (Tree) میشود.
- گراف (Graph)
- صفحههای هش (Hash Tables)
- صفحههای برگردان (Hash Tables with Chaining)
کاربردهای ساختمان داده چیست؟
ساختمان دادهها در بسیاری از زمینهها و کاربردهای مختلف استفاده میشوند، از جمله:
- برنامهنویسی و توسعه نرمافزار
- پایگاهدادهها و سیستمهای مدیریت داده
- شبکههای اجتمی، اینترنت و طراحی پروتکلها
- الگوریتمها و هوش مصنوعی
- سیستمهای عامل و مدیریت حافظه
- گرافیک کامپیوتری و شبیهسازیها
- بهینهسازی و بهینهسازی مسائل
- تحلیل الگوریتمها و پیچیدگی زمانی
الگوریتمهای مرتبسازی ساختمان داده
برخی از معروفترین الگوریتمهای مرتبسازی عبارتند از:
- مرتبسازی حبابی (Bubble Sort)
- مرتبسازی انتخابی (Selection Sort)
- مرتبسازی درجی (Insertion Sort)
- مرتبسازی ادغامی (Merge Sort)
- مرتبسازی سریع (Quick Sort)
- مرتبسازی تراکمی (Heap Sort)
- مرتبسازی شمارشی (Counting Sort)
- مرتبسازی مبنا (Radix Sort)
هر یک از این الگوریتمها روشهای مختلفی برای مرتبسازی دادهها ارائه میدهند با توجه به نوع ساختمان داده و نیازها. هر الگوریتم مزایا و معایب خود را دارد و بسته به مورد استفاده ممکن است یکی از آنها را انتخاب کنید.
aliy دانشجوی دوره
خیلی بد تدریس میشه!! کاملا در روند آموزش احساس میکنید به مطالبی که بیان میکنن مسلط نیستن!!
alirezapourabiri98
سلام
کد تخفیف نداره ؟
علیرضا احمدی
سلام همین الان دوره تو تخفیف هست
aliesadat.kia2000
سلام،من دوره رو خریداری کردم،اما لینک به ایمیل من ارسال نشده،
حسن رجبیان
سلام وقت بخیر
در پنل کاربریتون در قسمت سفارشات ، میتونین وارد دوره بشین و از صفحه مربوطه دانلود رو انجام بدین
عبدالله
سلام من الان جزوه اموزشی طراحی الگوریتم رو خریدم از حسابم کم شد ولی لینک ها ارسال نشد
پشتیبان توفیق پور
سلام وقت بخیر
ایمیلتون رو بررسی کنید به ایمیل شما ارسال شد.
موسوی
سلام نسخه ی پی دی اف این درس ساختمان داده وجود دارد؟ چگونه می توانم به انها دسترسی داشته باشم؟
پشتیبان توفیق پور
سلام وقت بخیر
خیر مدرس نسخه pdf در اختیار دانشجویار نگذاشتند.
Fatemeh76918
سلام من آدرس ایمیل ام رو اشتباهی زدم الان چیکار کنم نمیشه اصلاحش کرد
پشتیبان توفیق پور
سلام شب بخیر
ایمیل صحیح و ایمیل اشتباه رو در قسمت چت آنلاین ارسال کنید همکارم راهنمایی تون می کنند.
سارینا رضایی
من لینک دانلود دریافت نکردم فکر میکنم ایمیل رو اشتباه نوشتم میشه زود پاسخ بدید لازم دارم فیلم هارو
پشتیبان توفیق پور
سلام روزبخیر
لطفا قسمت چت آنلاین و یا تیکت ها ایمیل صحیح و یا شماره سفارش رو اعلام کنید تا همکارم راهنمایی کنند.
نگین
سلام ببخشید من همین الان دوره کل رو خریداری کردم فقط پیامک اومده ک لینک ارسال شده ب ایمیل من ولی من لینکی در ایمیلم دریافت نکردم .کی ارسال میکنید؟با تشکر
حسن رجبیان
لینک ها به صوت اتوماتیک براتون ایمیل میشه . لطفا پوه اسپم رو هم چک کنین، اگر نبود از طریق چت سیا پیام بدین تا مشکلتون توسط پشتیبان حل بشه
nargesm
سلام وقت بخیر . من دوره رو خریداری کردم میخواستم بدونم در صورت لزوم امکان رفع اشکال وجود داره؟
پشتیبان توفیق پور
سلام ممنونم
زمان پشتیبانی سه ماهه این دوره به اتمام رسیده
Tahereh khodadadi
سلام
من در این دوره شرکت کردم و هزینه رو هم پرداخت کردم اما هیچ لینکی دریافت نکردم لطفا بررسی کنین من ب این آموزش نیاز دارم
پشتیبان توفیق پور
سلام روزبخیر
ابتدای ایمیلتون www وارد کردید
اطمینان دارید ایمیلتون درسته؟
Tahereh khodadadi
سلام درسته www رو اشتباه کردم
پشتیبان توفیق پور
ایمیل شما اصلاح و مجدد ارسال شد.
دانشجو
با عرض سلام..برای باز شدن فایل از حالت فشرده نیاز با رمز داره؟!
پشتیبان توفیق پور
سلام وقت بخیر
رمز فایل های فشرده : http://www.daneshjooyar.com
محمد
سلام و عرض ادب … این مدرسش که خانم نیست چرا اسم مدرس رو خانم گذاشتید بعد اینکه آیا سوال داشتیم پشتیبانی هم داره میشه که شماره مدرس هم گرفت سوالامون رو بپرسیم ؟؟؟ ممنون میشم جواب بدید بنده رشتم چیز دیگه هست اما میخوام کنکور ارشد بدم مجبورم که ساختمان داده را بلد باشم به همین خاطر نیاز به پرسیدن سوال هم از استاتید دارم با تشکر از شما
اسما رادفر
سلام
اصلاح شد
ایمیل مدرس : ramin.akhtar [at] yahoo.com
ممنون
میلاد
سلام وعرض ادب برای چه مقطعی ای میباشد
علی تقی زاده
سلام
برای مقاطع کاردانی و کارشناسی می باشد.
سید محمد موسوی
با سلام … اگر ممکنه فایل های پاورپوینت این آموزش رو هم برای دانلود قرار بدید چون بعد از دیدن ویدئو ها داشتن فایل های متنی میتونه خیلی کمک کنه . ممنون
amhasadi
باسلام. پکیج مربوطه رو خریداری کردم، اما لینک دانلود دریافت نکردم.
effat
سلام .من این دوره را خریداری کردم و در سایتم ثبت نام کردم بعد رفتم لینک را درخواست دادم به ایمیلم ارسال بشه اما هنوز ارسال نشده..من هزینه دوره را دادم ولی نمیتونم استفاده کنم..لطفا کمکم کنید.surryna1396@gmail.com
پشتیبان خرید رادفر
سلام
رسید خرید مجدد براتون ایمیل شد
لطفا spam ایمیلتون رو هم چک کنید
ممنون
se_atshani
به به چه تسلطی چقدر کامل
ممنونم
ابراهیم زاده
سلام
من این اموزش رو خریداری کردم خیلی عالی،و توضیح دادنش قابل فهمه نسبت به فیلم های بقیه سایتها بهترین بود
سوالم اینه که برای درس طراحی الگوریتم دوره ای ندارید؟
f
سلام
ببخشید این آموزش با دو تای دیگه از ساختمان داده که در سایت قرار دادید چه فرقی داره؟
مدیر آموزش
سلام
هر سه درس ساختمان داده ها هست از سه مدرس.که کیفیت دوره سوم به نسبت دو دوره قبل بالاتر و سرفصل اون کاملتر هست.
مدرس سهولی
سلام مناسب کنکوره؟