پروژه پاورپوینت ساختمان داده ها در C مفاهیم اساسی و تحلیل الگوریتم ها
خلاصه ای از پروژه:
این منبع، کتاب “ساختمان داده ها به زبان C” است که به بررسی مفاهیم اساسی ساختمان دادهها و پیادهسازی آنها در زبان C میپردازد. این کتاب، ترجمهای از منبع اصلی “Fundamental of Data Structure in C” اثر Horowitz Ellis است و به عنوان یک درس اجباری در رشته کامپیوتر مطرح میشود.
در فصل اول، به مفاهیم اساسی مانند سیکل زندگی نرمافزار، الگوریتم و شرایط آن پرداخته میشود. سیکل زندگی نرمافزار شامل مراحلی نظیر نیازمندیها، تحلیل، طراحی، پالایش و کدنویسی و بازبینی است. الگوریتم نیز به عنوان مجموعهای از دستورالعملها تعریف میشود که با دنبال کردن آنها، کار خاصی انجام میگیرد و باید دارای ویژگیهایی مانند قطعیت، محدودیت و کارایی باشد.
فصلهای بعدی به بررسی ساختارهای دادهای مختلف مانند آرایهها، ساختارها و انواع دادهای مجرد (ADT) اختصاص دارد. نوع داده مجرد شامل مشخصات دادهها و اعمالی است که بر روی آنها انجام میشود و هدف آن جداسازی پیادهسازی و نمایش دادهها از یکدیگر است. توابع یک نوع داده به گروههای ایجادکننده، تبدیلکنندگان و مشاهدهکنندگان تقسیم میشوند.
در ادامه، تحلیل نحوه اجرای یک برنامه و معیارهای محک زدن آن مورد بررسی قرار میگیرد. این تحلیل شامل تخمین حافظه و زمان مورد نیاز برای اجرای برنامه است و به دو بخش نیازمندیهای فضای ثابت و نیازمندیهای فضای متغیر تقسیم میشود. همچنین، مفاهیم پیچیدگی زمانی و فضایی برنامه و علامتگذاری مجانبی (O، Ω ،Θ) برای مقایسه پیچیدگی برنامهها و پیشبینی رشد زمان اجرا با تغییر صفات نمونه توضیح داده میشود.
بهترین پروژههای دانشجویی ساختمان داده را با دانلود آسان و آماده برای استفاده در اختیار داشته باشید!
عناوین و فهرست کلی پروژه:
ساختمان داده ها به زبان C
**جایگاه درس در رشته کامپیوتر**
* ضرورت این درس
* دروس پیش نیاز
* نوع درس
* تعداد کل ساعات تدریس
* تعداد جلسات تدریس
**فصل اول: مفاهیم اساسی**
* آشنایی با سیکل زندگی نرم افزار
* نیازمندی ها
* تحلیل
* شیوه از بالا به پایین
* شیوه از پایین به بالا
* طراحی
* ایجاد نوع داده مجرد
* پالایش (اصلاح) و کدنویسی
* بازبینی
* اثبات درستی
* تست
* اشکال زدایی
* نمودار سیکل زندگی نرم افزار
* تعریف الگوریتم
* ورودی
* خروجی
* قطعیت
* محدودیت
* کارایی
* شرایط الگوریتم
* مثالی از الگوریتم: الگوریتم مرتب سازی
* الگوریتم بازگشتی
* مثال الگوریتم جستجوی دودویی
* آرایه، ساختار و نوع داده
* آرایه
* ساختار
* نوع داده
* نوع داده ای مجرد
* تحلیل نحوه اجرای یک برنامه
* معیارهای محک زدن یک برنامه
* میزان حافظه یا پیچیدگی فضای یک برنامه
* میزان یا پیچیدگی زمان یک برنامه
* میزان حافظه
* نیازمندیهای فضای ثابت
* نیازمندیهای فضای متغیر
* زمان T(P) برنامه
* مرحله برنامه
* علامت گذاری مجانبی (O، Ω ،Θ)(Asymptotic)
* قضیه
* مثال (پیچیدگی جمع ماتریس ها)
* روش های اندازه گیری زمان رویدادها در C
* تولید داده های آزمایشی برای ایجاد بدترین حالت اجرا
**فصل دوم: آرایه ها**
* آرایه
* ساختار
* لیست
* ماتریس اسپارس
* رشته
* آرایه ها و ساختارها
* آرایه
* بازیابی
* ذخیره سازی مقادیر
* ساختارها
* یونیون ها
* ساختارهای خود ارجاعی
* لیست
* اعمال صورت گرفته بر روی لیست ها
* نگاشت ترتیبی
* ADT ماتریس اسپارس
* ترانهاده یک ماتریس
* تحلیل ترانهاده
* ضرب ماتریس
* روال mmult
* نمایش آرایه های چند بعدی
* روش سطری
* روش ستونی
* نوع داده مجرد رشته ای (STRING ADT)
* مختص ADT جدید
* نمایش رشته در زبان C
* مثال: درج رشته
* تطابق الگو (Pattern Matching)
**فصل سوم: صف و پشته**
* آشنایی با پشته
* آشنایی با صف
* ارزشیابی عبارات
* پشته و صف
* پشته
* ساختار نوع داده مجرد پشته
* پیاده سازی پشته
* جایگذاری به یک پشته
* حذف از یک پشته
* صف
* جایگذاری در صف
* حذف عنصری از یک صف
* مساله مسیر پر پیچ و خم (MAZING)
* تحلیل مسیر
* ارزشیابی عبارات
* اولویت عملگرها
* روش infix
* نشانه گذاری postfix
* خصوصیات postfix
* الگوریتم تبدیل infix به postfix
* مثال
* تحلیل postfix
**فصل چهارم: لیست ها**
* آشنایی با اشاره گرها
* لیست ها و لیست حلقوی
* روابط هم ارزی
* لیست پیوندی دوگانه
* لیستها
* مشکلات نمایش ترتیبی
* نمایش پیوندی
* اشاره گرها
* خطر استفاده از اشاره گرها
* استفاده از حافظه پویا (استفاده از heap)
* لیست های تک پیوندی
* نکات
* روش معمول برای نمایش یک لیست پیوندی
* مثال
* امکانات لازم برای ایجاد لیست پیوندی
* چاپ یک لیست
* صف و پشته پیوندی
* پشته پیوندی
* صف پیوندی
* تابع add و delete
* تابع add
* تابع delete
* اضافه کردن گره ای به انتهای یک صف پیوندی
* حذف از ابتدای یک صف پیوندی
* نمایش چند جمله ای ها به صورت لیست های تک پیوندی
* جمع چند جمله ای
* تحلیل جمع چند جمله ای ها
* رابطه هم ارزی
* الگوریتم تعیین کلاس های هم ارزی
* الگوریتم هم ارزی
* نمایش ماتریس های اسپارس به وسیله لیست پیوندی
* لیست های پیوندی دوگانه
* لیست های پیوندی دوگانه
* لیست پیوندی دوگانه حلقوی با گره head
* درج در یک لیست پیوندی دوگانه حلقوی
* حذف از یک لیست پیوندی دوگانه حلقوی
**فصل پنجم: درخت**
* آشنایی با درخت
* درخت های دودویی
* پیمایش درختان
* هرم
* جنگل
* درختان
* مفهوم درخت
* مثالی از یک درخت
* اصطلاحات درخت ها
* نمایش لیست
* نمایش دودویی یک درخت
* درخت های دودویی
* ساختار درخت دودویی
* تفاوت درخت عادی با درخت دودویی
* خواص درختان دودویی
* نمایش درخت دودویی
* نمایش آرایه
* نمایش لیست پیوندی
* پیمایش درخت دودویی
* پیمایش Inorder
* پیمایش Preorder
* پیمایش postorder
* پیمایش inorder غیربازگشتی
* پیمایش ترتیب سطحی
* اعمال مفید بر روی درختان دودویی
* درختان نخي دودويي
* پیمایش inorder یک درخت نخي دودويي
* درج یک گره به داخل درخت نخي دودويي
* نوع داده مجرد ((ADT هرم
* مثال از max heap و min heap
* اعمال اساسی بر روی heap
* صف اولویت
* نمایش های صف اولویت
* درج عناصر به داخل یک Max Heap
* تحلیل تابع insert_max_heap
* حذف عنصری از Max Heap
* تحلیل تابع delete_max_heap
* درختان جستجوی دودویی
* جستجوی یک درخت دودویی
* تحلیل search
* درج عنصری به داخل درخت جستجوی دودویی
* تحلیل insert_node
* حذف عنصری از درخت جستجوی دودویی
* درختان جستجوی متعادل
* درختان انتخابی
* جنگل ها
* تبدیل جنگل به یک درخت دودویی
* پیمایش جنگل
* نمایش مجموعه
* اعمال روی مجموعه ها
* قانون Weighting برای Union(i ، j )
* پیاده سازی قانون Weighting
* مجموعه ها
* شمارش درختان دودویی
* تعداد درختان دودویی مجزا
**فصل ششم: گراف ها**
* آشنایی با گراف
* ماتریس مجاورتی
* جستجوی گراف
* شبکه ها
* گراف ها
* محدودیت های گراف ها
* نمايش گراف
* ماتريس مجاورتي
* ليست هاي مجاورتي
* ليست هاي چندگانه
* لبه هاي وزني
* اعمال ابتدايي گراف
* جستجوي عمقي
* جستجوي ردیفی
* درخت هاي پوشا
* اجزاي دو اتصالي و نقاط اتصال
* درختان پوشاي با حداقل هزينه
* الگوريتم راشال
* الگوريتم پريم
* الگوريتم سولين
* يک مبدا و چند مقصد
* کوتاهترين مسير بين هر جفت از رئوس
* بسته بودن تعدي
* ماتريس بسته بودن تعدي و ماتريس بسته بودن تعدي انعکاسي
* شبکه AOV
* فعاليت بر روي لبه (AOV) شبکه
* محاسبه زودترين زمان
**فصل هفتم: مرتب سازی**
* جستجو
* جستجوی دودویی
* مرتب سازی درجی
* مرتب سازی سریع
* مرتب سازی ادغام
* مرتب سازی لیست
* مرتب سازی
* اصطلاحات
* جستجوی ترتیبی
* تحلیل تابع seqsearch
* جستجوی دودویی
* درخت تصمیم گیری برای جستجوی دودویی
* وارسی لیست (list Verification)
* مرتب سازی
* مرتب سازی درجی Insertion Sort
* تحلیل تابع insertion sort
* مرتب سازی سریع
* زمان مرتب سازی بهینه
* درخت تصمیم گیری (مثال)
* مرتب سازی ادغام
* مراحل الگوریتم O(1)
* مرتب سازی ادغام تکراری (غیر بازگشتی)
* مرتب سازی ادغام بازگشتی
* مرتب سازی heap
* مرتب سازی مبنا
* مرتب سازی لیست و جدول
* خلاصه مرتب سازی داخلی
* مرتب سازی خارجی (روش های مرتب سازی فایل های بزرگ)
* ادغام k طرفه
* بکارگیری میانگیر برای عملیات موازی
* مراحل الگوریتم مربوط به میانگیر
نقد و بررسیها
هنوز بررسیای ثبت نشده است.