صف (Queue)
#csharp_for_beginners
در برنامهنویسی، صف (Queue) یکی از مهمترین ساختارهای دادهای است که بر پایه اصل اول وارد، اول خارج (FIFO) عمل میکند. کلاس <Queue<T در فضای نام System.Collections.Generic در داتنت (#C) پیادهسازی این ساختار را به شکلی ساده و قدرتمند فراهم کرده است.
کلاس <Queue<T از فضای نام System.Collections.Generic استفاده میکند و برای کار با مجموعهای از عناصر از نوع مشخص (Generic) طراحی شده است. این کلاس در اسمبلی System.Collections.dll قرار دارد
ویژگیهای اصلی
FIFO (اول وارد، اول خارج): عناصر به انتهای صف اضافه میشوند و از ابتدای آن حذف میشوند.
جنریک: میتوانید نوع داده مورد نظر خود را هنگام ایجاد صف مشخص کنید.
کارایی بالا : استفاده بهینه از حافظه و سرعت مناسب برای صفهایی با حجم بالا.
متدها و اعضای مهم
• Enqueue
این متد برای افزودن یک عنصر به انتهای صف استفاده میشود.
• Dequeue
برای حذف و بازگرداندن اولین عنصر صف از این متد استفاده میشود. اگر صف خالی باشد، اجرای این متد منجر به بروز خطا میشود.
• Peek
این متد بدون حذف عنصر، فقط اولین عنصر صف را بازمیگرداند. در صورتی که صف خالی باشد، خطا ایجاد میشود.
• Count
این ویژگی تعداد عناصر موجود در صف را بازمیگرداند و فقط قابل خواندن است.
• Clear
تمام عناصر موجود در صف را حذف میکند و صف را به وضعیت خالی برمیگرداند.
• Contains
بررسی میکند که آیا یک عنصر خاص در صف وجود دارد یا خیر. مقدار برگشتی این متد یک مقدار منطقی (true یا false) است.
• ToArray
تمامی عناصر موجود در صف را به یک آرایه کپی میکند و آن را بازمیگرداند.
• TrimExcess
این متد برای بهینهسازی حافظه استفاده میشود و ظرفیت صف را به اندازه واقعی دادهها کاهش میدهد.
• GetEnumerator
این متد امکان پیمایش صف با استفاده از حلقهها و الگوهای تکرار را فراهم میکند
کاربردهای رایج
کلاس <Queue<T در سناریوهای متعددی کاربرد دارد؛ از جمله:
مدیریت نوبت در سیستمهای کاربرمحور
الگوریتمهای گراف مانند جستجوی سطحی (BFS)
صفهای پردازش پیام در سیستمهای توزیعشده
مدیریت وظایف پسزمینه در برنامههای چندنخی
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
Post #2304
1.99K