دانلود پروژه - امروز : پنج شنبه ۱۸ آذر ۱۳۹۵

ساختمان داده صف Queue سی پلاس پلاس

موضوع : ساختمان داده,سی پلاس

ساختمان داده صف Queue سی پلاس پلاس

ساختمان داده صف Queue سی پلاس پلاس

ساختمان داده صف چیست

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

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

کلاس Queue :
در C# کلاسی بنام Queue در فضای نام Collections وجود دارد که ساختمان داده ی صف را با توجه به ویژگی هایی که مطرح شد پیاده سازی میکند. یعنی این کلاس تمام عملیات و متدهایی که برای صف تعریف کردیم به همراه فعالیتهای دیگری، فراهم میسازد. این کلاس برای ذخیره عناصر صف از یک ArrayList استفاده میکند. چون اندازه ArrayList بطور پویا در زمان اجرا تغییر میکند، برای پیاده سازی ساختمان داده پویایی مثل Queue مفید است. همتای کلی آن در فضای نام Collections.Generic قرار دارد.

حتما بخوانید : ساختمان داده صف با آرایه سی پلاس پلاس

 

متدهای سازنده کلاس Queue :
برای استفاده از کلاس Queue باید اشیایی از آن را ایجاد و از آنها استفاده کرد. به چند روش میتوان اشیایی از کلاس Queue را ایجاد کرد.

سازنده پیش فرض، صفی بنام myQueue ایجاد میکند که اندازه اولیه آن ۳۲ عنصر است. وقتی صف پر شد، ظرفیت آن با ضریب دو افزایش می یابد. سازنده ی پیش فرض بصورت زیر فراخوانی میشود:

در روش دوم برای ایجاد شیء صف اندازه اولیه آن را تعیین کرده ضریب افزایش طول صف را نیز مشخص میکنیم. در مثال زیر صفی با اندازه ۳۲ عنصر ایجاد میشود. هر وقت صف پر شد، اندازه آن سه برابر میشود:

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

متدهای کلاس Queue :
در این بخش بعضی از متدهای کلاس Queue را که عملیات های صف را پیاده سازی میکنند، بررسی میکنیم:

EnQueue : این متد، عنصری را به انتهای صف اضافه میکند و بصورت زیر بکار میرود :

DeQueue : این متد عنصر جلوی صف را حذف میکند و آن عنصر را در متغیر item قرار میدهد.

Peek : این متد، عنصر جلوی صف را برمیگرداند ولی آنرا حذف نمیکند.

این عملیات معادل یک عمل EnQueue و سپس یک عمل DeQueue برای همان عنصر است.

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

Contains : مشخص میکند که آیا عنصرخاصی در صف وجود دارد یا خیر. اگر وجود داشته باشد، مقدار true وگرنه false برمیگرداند. از این متد برای جست وجوی عنصری در صف استفاده میکنیم که در جلوی صف نیست.

CopyTo : این متد محتویات صف را درآرایه ای از نوع Object کپی میکند. این متد بصورت زیر بکار برده میشود:

array آرایه ای است که محتویات صف باید در آن کپی شوند و index مشخص میکند محتویات صف با شروع از چه اندیسی در آرایه array کپی شوند، عناصر صف به ترتیب FIFO در آرایه کپی میشوند.

ToArray : این متد نیز محتوای صف را در آرایه کپی میکند با این تفاوت که نیاز به مشخص کردن اندیس شروع کپی در آرایه مقصد نیست زیرا از اندیس صفر شروع به کپی میکند و باید آنرا در دستور انتساب بکار برد.

 

چه امتیازی به این پروژه می دهید؟
0 تا کنون ثبت شده است
نماد کسب و کار اینترنتی
تمام حقوق مادی و معنوی و طرح قالب برای "سی پلاس" محفوظ است و هر گونه کپی برداری خلاف قوانین می شود. گرافیک و طراحی : دانلود پروژه