الگوریتمستان

برنامه‌نویسی، طراحی الگوریتم و حل مسئله‌های الگوریتمی

 
در صورت ناخوانا بودن نوشته‌ها، از مرورگر دیگری استفاده کنید.
نوشته‌ها با برچسب ساختمان داده نوشته‌ها با برچسب ساختمان داده - الگوریتمستان الگوریتمستان الگوریتمستان
نوشته‌ها با برچسب «

ساختمان داده

»

درخت دودویی (Binary Tree)

درختی است که هر گره آن دارای حداکثر دو گره فرزند است که به آنها فرزند راست و چپ گره گفته می‌شود. به همین ترتیب زیردرختی که فرزند راست در رأس آن قرار دارد زیردرخت راست و زیردرختی که فرزند چپ در رأس آن قرار دارد زیردرخت چپ گره نامیده می‌شوند.

  

درخت دودویی

  

درخت جستجوی دودویی (Binary Search Tree - BST)

درختی دودویی است که برای هر گره آن شروط زیر برقرار هستند:

ادامه ...

صف اولویت‌دار (یا صف اولویتی - Priority Queue) از جمله ساختمان داده‌های بسیار پرکاربرد است. در صف عادی از تکنیک FIFO - مخفف First In First Out - استفاده می‌شود. در این تکنیک، مثل یک صف نانوایی، داده‌ها به ترتیب ورود پشت سر هم در صف قرار می‌گیرند. بنابراین اولین داده‌ی ورودی، اولین داده‌ی خروجی نیز خواهد بود. اما در صف اولویت‌دار برای هر داده، اولویتی - نه لزوما منحصربفرد - مشخص می‌شود. صف اولویت را می‌توان به اورژانس یک بیمارستان تشبیه کرد که هر بیمار با شدت بیماری بیشتر اولویت بیشتری برای رسیدگی دارد. سیستم عامل کامپیوتر هم برای مدیریت پردازش‌ها از صف‌های اولویت‌دار استفاده می‌کند.

ادامه ...

درخت دودویی کامل

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

  

به یک مثال دقت کنید:

  

درخت هیپ یا هرم یا کپه

  

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

ادامه ...

مبحث لیست‌های پیوندی یکی از شاخه‌های ساختمان داده‌ها است که حرف اول را در آن آشنایی با اشاره‌گرها و مفهوم آن می‌زند. برای این که بتوانید در مباحث مختلف ساختمان داده‌ها از قبیل لیست‌های پیوندی، صف، پشته و به ویژه درخت موفق باشید، باید مفهوم اشاره‌گرها را خوب متوجه شده باشید.

در مطالب قبلی اشاره شد که آرایه‌های ایستا با توجه به ویژگی‌هایی که دارند، نمی‌توانند در همه‌ی مواقع نیاز ما را برآورده کنند. به همین خاطر آرایه‌های پویا را به خدمت می‌گیریم. اما آرایه‌های پویا هم معایبی دارند. بزرگترین مشکل آرایه‌ها - چه ایستا و چه پویا - این است که اندازه‌ی ثابتی دارند و امکان تغییر اندازه پس از تعریف آنها وجود ندارد. این ویژگی گاهی چندان مهم نیست. مثلا فرض کنید قصد داریم یک ماتریس با ابعاد نامشخص را در یک آرایه‌ی دو بعدی به گونه‌ای قرار دهیم که با مشکل کمبود فضا و یا فضای اضافی مواجه نشویم. آرایه‌ی ایستا در این مورد کمکی به ما نمی‌کند. اما آرایه‌ی پویا به خوبی این مشکل را برطرف می‌کند.

ادامه ...

الگوریتمستان در تلگرام

   

 

پیوند کوتاه:
برچسب‌ها
#کتاب الکترونیکی #الگوریتم #آموزش الگوریتم #ترجمه‌ی فارسی سوالات برنامه‌نویسی #ترجمه‌ی فارسی سوالات ACM #آمادگی مسابقه برنامه‌نویسی #برنامه‌نویسی ++C #سوالات مسابقات ACM-ICPC #الگوریتم‌های بازگشتی #ساختمان داده #ترجمه فارسی سوالات کتاب Programming Challenges #الگوریتم فلوید-وارشال #مسئله‌های الگوریتمی #آمادگی مسابقه ACM #الگوریتم‌های گراف #مسابقه برنامه‌نویسی #نمونه سوالات مسابقه برنامه‌نویسی #ماتریس #سوالات UVa Online Judge #سوالات چالشی برنامه‌نویسی #تمرین المپیاد کامپیوتر #نمونه سوال فارسی مسابقات ACM #صف #الگوریتم‌های تقسیم و غلبه #وبلاگ #مسابقات برنامه‌نویسی #نمونه سوال مسابقه ACM #حل سوالات ACM-ICPC #تمرین مسابقه برنامه‌نویسی #الگوریتم‌های حریصانه #جستجوی اول عمق #کتابخانه قالب استاندارد ++C #نمونه سوال فارسی مسابقات برنامه‌نویسی #معرفی وب‌سایت #حل سوالات Timus Online Judge #الگوریتم‌های کوتاهترین مسیر #تکنیک‌های طراحی الگوریتم #کتاب مسابقات برنامه‌نویسی #الگوریتم‌های مرتب‌سازی #محاسبات ریاضی #ترجمه‌ی فارسی سوالات UVa Online Judge #مسأله‌های الگوریتمی #آموزش برنامه‌نویسی ++C #آمادگی المپیاد کامپیوتر #تمرین طراحی الگوریتم #الگوریتم‌های مسیریابی #سوالات برنامه‌نویسی #نمونه سوال فارسی مسابقه‌ی ACM #سوالات مسابقات برنامه‌نویسی بیان #حل مسئله‌‌ی الگوریتمی #مسأله‌های برنامه‌نویسی #دانلود کتاب #آموزش طراحی الگوریتم #برنامه‌نویسی #پیمایش گراف #آموزش ساختمان داده‌ها #گراف #درخت پوشا #ویدئوی آموزشی #حل سوالات UVa Online Judge #الگوریتم دایکسترا #تمرین مسابقه‌ی برنامه‌نویسی ای‌سی‌ام #نکات برنامه‌نویسی #منبع آموزشی #مسئله‌های برنامه‌نویسی #جستجوی اول سطح #Python #کتاب الگوریتم #مسابقه برنامه نویسی #مسئله‌ی کوله‌پشتی #الگوریتم‌های برنامه‌نویسی پویا #مسابقات برنامه‌نویسی ACM #حل سوالات مسابقات برنامه‌نویسی #درخت‌ها #الگوریتم‌های عقبگرد