صف اولویت دار (به انگلیسی: Priority Queue) از جمله ساختمان های داده بسیار پرکاربرد است.
حذف عنصر با پایین ترین اولویت (به انگلیسی: pull_lowest_priority_element)
پاکسازی صف (به انگلیسی: clear)
ترکیب ۲ صف اولویت (به انگلیسی: merge)
افزایش اولویت یک عنصر (به انگلیسی: increment_priority)
و...
در صف عادی از روش خروج به ترتیب ورود (FIFO) استفاده می شود. در این تکنیک مثل یک صف نانوایی داده ها به ترتیب ورود پشت سر هم در صف قرار می گیرند؛ بنابراین اولین داده ورودی اولین داده خروجی نیز خواهد بود.
اما در صف اولویت دار برای هر داده اولویتی - نه لزوماً منحصربه فرد - مشخص می شود. صف اولویت را می توان به اورژانس یک بیمارستان تشبیه کرد که هر بیمار با شدت بیماری بیشتر اولویت بیشتری برای رسیدگی دارد. سیستم عامل کامپیوتر هم برای مدیریت پردازش ها از صفهای اولویت استفاده می کند.
صف های اولویت حداقل از ۲ عملیات زیر پشتیبانی می کنند:
حذف عنصر با پایین ترین اولویت (به انگلیسی: pull_lowest_priority_element)
پاکسازی صف (به انگلیسی: clear)
ترکیب ۲ صف اولویت (به انگلیسی: merge)
افزایش اولویت یک عنصر (به انگلیسی: increment_priority)
و...
در صف عادی از روش خروج به ترتیب ورود (FIFO) استفاده می شود. در این تکنیک مثل یک صف نانوایی داده ها به ترتیب ورود پشت سر هم در صف قرار می گیرند؛ بنابراین اولین داده ورودی اولین داده خروجی نیز خواهد بود.
اما در صف اولویت دار برای هر داده اولویتی - نه لزوماً منحصربه فرد - مشخص می شود. صف اولویت را می توان به اورژانس یک بیمارستان تشبیه کرد که هر بیمار با شدت بیماری بیشتر اولویت بیشتری برای رسیدگی دارد. سیستم عامل کامپیوتر هم برای مدیریت پردازش ها از صفهای اولویت استفاده می کند.
صف های اولویت حداقل از ۲ عملیات زیر پشتیبانی می کنند:
wiki: صف اولویت دار