KonkurStudy

سوال ۶۵ کنکور ارشد علوم کامپیوتر ۱۴۰۴

اهمیت
۰/۵

فرض کنید می‌خواهیم یک داده‌ساختار طراحی کنیم که هم‌زمان قابلیت‌های یک صف معمولی و یک صف اولویت (Priority Queue) را داشته باشد. این داده‌ساختار باید بتواند عملیات‌های زیر را انجام دهد:

  • افزودن یک عنصر Enqueue(x,p)\text{Enqueue}(x,p): عنصر x با اولویت p به داده‌ساختار اضافه می‌شود.
  • Dequeue Max\text{Dequeue Max}: عنصر با بیشترین اولویت از داده‌ساختار حذف و بازگردانده می‌شود.
  • Dequeue First\text{Dequeue First}: اولین عنصری که به داده‌ساختار اضافه شده، حذف و بازگردانده می‌شود.

اگر این داده‌ساختار را با استفاده از پشته (Stacks) پیاده‌سازی کنیم، حداقل پیچیدگی زمانی سرشکن عملیات‌های Dequeue Max & Dequeue First\text{Dequeue Max \& Dequeue First} برای n عملیات چقدر می‌تواند باشد؟

#priority-queue#heap#fifo-queue#amortized#sorting-lower-bound#extract-max