Queue در سی شارپ

در این بخش از آموزش سی شارپ، Queue یا صف، نحوه ایجاد آن، درج و حذف عناصر از صف، خصوصیات و متدهای Queue به همراه مثال های کاربردی، کد و خروجی توضیح داده می شود.

Queue در سی شارپ

Queue در سی شارپ

در فرهنگ لغت، صف به معنای “خط انتظار” است، مانند صفی که مردم برای گرفتن نان در گرفتن نان در جلوی نانوایی تشکیل میدهند. و در ساختمان داده، صف مجموعه ای از عناصر است که عناصر از یک طرف به نام آخر صف به آن اضافه و از طرف جلوی صف از آن حذف میشوند. بر خلاف پشته، صف از هر دو سمت باز است. از یک سمت همواره برای درج داده ها و از سمت دیگر برای حذف داده ها استفاده می شود. در این ساختار هر داده ای که اول در صف ذخیره شود، هنگام خروج نیز قبل از همه خارج می شود.

Queue یا صف نوع خاصی از مجموعه است که عناصر را به سبک FIFO یا First In First Out (خروج به ترتیب ورود)، دقیقاً برعکس مجموعه Stack ذخیره می کند. صف شامل عناصر به همان ترتیبی است که اضافه شده اند. سی شارپ شامل مجموعه های صف عمومی و صف غیر عمومی است. توصیه می شود از مجموعه <Queue<T عمومی استفاده کنید.

خصوصیات و ویژگی های Queue

1- <Queue<T مجموعه FIFO (First In First Out) است.

2- در فضای نام System.Collection.Generic قرار می گیرد.

3- <Queue<T می تواند حاوی عناصری از نوع مشخص شده باشد. چک کردن نوع زمان کامپایل را فراهم می کند و boxing-unboxing را انجام نمی دهد زیرا عمومی است.

4- در <Queue<T عناصر را می توان با استفاده از متد ()Enqueue اضافه کرد. نمی توان از سینتکس collection-initializer استفاده کرد.

5-عناصر را می توان با استفاده از متدهای ()Dequeue و ()Peek بازیابی کرد. <Queue<T در واقع indexer را پشتیبانی نمی کند.

شکل زیر مجموعه Queue را نشان می دهد:

Queue in C#

ایجاد Queue

شما می توانید با تعیین یک نوع پارامتر برای نوع عناصری که می تواند ذخیره کند، یک شی از <Queue<T ایجاد کنید. مثال زیر با استفاده از متد ()Enqueue عناصر را در <Queue<T ایجاد و اضافه می کند. در مجموعه صف می توانید مقادیر تهی (برای انواع مرجع) و تکراری را ذخیره کنید.

ایجاد Queue

خروجی قطعه کد بالا به صورت زیر می باشد.

ایجاد Queue

ویژگی های Queue

1- Count

تعداد کل عناصر موجود در صف را برمی گرداند.

متد های Queue

1- Enqueue(T)

یک آیتم را به صف اضافه می کند.

2- Dequeue

یک آیتم را از ابتدای صف برمی گرداند و آن را از صف حذف می کند.

3- ()Peek

اولین آیتم را بدون حذف آن از صف برمی گرداند.

4- Contains(T)

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

5- ()Clear

این متد، کلیه عناصر صف را حذف می کند و خاصیت Count را برابر صفر قرار می دهد. یک کاربرد خوب این متد وقتی است که خطایی در پردازش صف وجود داشته باشد و بخواهیم تمام عناصر آنرا حذف کنیم.

بازیابی عناصر از Queue

متدهای ()Dequeue و ()Peek برای بازیابی اولین عنصر در یک مجموعه صف استفاده می شود. ()Dequeue اولین عنصر را از یک صف حذف و برمی گرداند زیرا صف عناصر را به ترتیب FIFO ذخیره می کند. فراخوانی متد Dequeue() در یک صف خالی، استثناء InvalidOperation را ایجاد می کند. بنابراین، همیشه قبل از فراخوانی، بررسی کنید که تعداد کل عناصر یک صف بزرگتر از صفر باشد.

بازیابی عناصر از Queue

خروجی قطعه کد بالا به صورت زیر می باشد.

آموزش سی شارپ در زبان سی شارپ

متد ()Peek همیشه اولین آیتم را از یک مجموعه صف بدون حذف آن برمی گرداند. فراخوانی متد ()Peek در یک صف خالی، یک استثنا در زمان اجرا InvalidOperationException ایجاد می کند.

متد Peek()

خروجی قطعه کد بالا به صورت زیر می باشد.

Peek() in C#

()Contains

متد ()Contains بررسی می کند که آیا یک آیتم در یک صف وجود دارد یا خیر. اگر آیتم مشخص شده وجود داشته باشد true را برمی گرداند، در غیر این صورت false را برمی گرداند.

امضای ()Contains عبارت است از: bool Contains(object obj)

Contains() in C#

خروجی قطعه کد بالا به صورت زیر می باشد.

Contains() in Queue in C#
Gueue صف Queue Properties Gueue Methods آموزش سی شارپ

مقالات این دسته بندی