سوال 65

حل تشریحی سوال شماره 65 طراحی الگوریتم

کنکور ارشد مهندسی کامپیوتر 1404

65.

فرض کنید یک ساختار داده جدید به نام لیست اولویت دار پویا (Dynamic Priority List) دارید. این ساختار داده از لیستی از گره ها تشکیل شده است که هر گره دارای یک مقدار کلید و یک اولویت است. عمل های زیر، بر روی این ساختار داده تعریف شده اند:

  • : افزودن یک عنصر با کلید x و الویت p به لیست
  • : حذف گره ای که دارای بیشترین اولویت است. اگر چند گره دارای اولویت یکسان باشند. اولین گره از سمت چپ حذف می شود.
  • : یافتن مقدار میانه از بین تمامی کلیدهای موجود در لیست
  • : افزایش اولویت عنصر با کلید x به اندازه k

هر کدام از این عملیات باید در کمترین پیچیدگی زمانی ممکن انجام شوند. حال، کدام یک از روش های زیر مناسب ترین ساختار داده ترکیبی برای پیاده سازی لیست اولویت دار پویا است، به گونه ای که همه عملیات با پیچیدگی بهینه انجام شوند؟

1)

استفاده از یک پشته و یک صف به صورت هم زمانی برای مدیریت ترتیب ورود و خروج عناصر و اولویت آنها

2)

ترکیب یک درخت فیبوناچی (Fibonacci Heap) و یک لیست پیوندی ساده برای مدیریت عناصر و اولویت ها

3)

ترکیب یک هرم دوتایی (Double-ended Heap) برای مدیریت اولویت ها و یک ساختار داده مرتب برای دسترسی سریع به میانه

4)

ترکیب یک درخت جستجوی دودویی متوازن (Balanced Binary Search Tree) برای ذخیره اولویتها و یک جدول در همسازی (Hash Table) برای دسترسی سریع به عناصر

پاسخ ها

0 پاسخ
تا کنون پاسخی برای این سوال وارد نشده است،

ارسال پاسخ