تک دیک

واژه نامه و مجله آموزشی کامپیوتر و تکنولوژی

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in posts
Search in pages
Filter by Categories
A
B
C
D
E
F
G
H
I
J
K
L
M
N
Numbers
O
P
Q
R
S
T
U
V
W
Y
Z
آگهی
اپلیکیشن ها
اچ‌تی‌ام‌ال
اسکرچ
اشخاص و شرکت ها
امنیت
امنیت آنلاین
اندروید
اینترنت
پایتون
پرسش و پاسخ
جاوااسکریپت
حروف انگلیسی
خبر
دوره های آموزشی
سخت‌افزار
سی‌اس‌اس
شبکه
فنی
کنسول جستجوی گوگل
گرافیک
لینوکس
مایکروسافت اکسل
مایکروسافت پاورپوینت
مایکروسافت ورد
مبانی کامپیوتر
مجله
مجله – امنیت
مجله – بازی
مجله – برنامه نویسی
مجله – دنیای اینترنت
مجله – سخت افزار
مجله – سیستم
مجله – شبکه
مجله – شبکه های اجتماعی
مجله – عمومی
مجله – گوشی‌های هوشمند
مجله – نرم افزار
مجله – ویندوز
مقدماتی
موضوعی
نرم‌افزار
وردپرس

صف Queue

صف یا Queue چیست؟

صف (Queue) عنوان ساختمان داده‌ای است که مجموعه‌ای از المان‌ها (عناصر) را بر اساس اصل FIFO (خروج به ترتیب ورود) در خود نگه‌داری می‌کند.

برای Queue دو عمل اصلی تعریف می‌شود. عمل Enqueue که عنصر جدیدی را به انتهای آن (که rear نامیده می‌شود) اضافه می‌کند و عمل Dequeue که عنصری را از ابتدای آن (که front نامیده می‌شود) حذف می‌کند. به این ترتیب اولین عنصری که به یک Queue افزوده می‌شود اولین عنصری خواهد بود که از آن حذف خواهد شد. از این رو، صف‌ها را نوعی ساختمان داده‌ی FIFO به شمار می‌آورند. در برخی از پیاده‌سازی‌ها، عملی به نام Front یا Peek نیز تعریف می‌شود که مقدار المان اول را بدون حذف آن برمی‌گرداند.

هنگامی که می‌خواهیم داده یا المانی را برای مدتی نگه‌داری و در آینده مورد پردازش قرار دهیم به کاربردن صف از جمله بهترین راهکارهایی به شمار می‌رود که برای این منظور استفاده می‌شود. در چنین حالتی صف، نقش یک بافر را ایفا می‌کند. یکی از مهم‌ترین کاربردهای این ساختمان داده در الگوریتم‌های زمان بندی می‌باشد.

پیاده‌سازی صف

هرچند از نظر تئوری می‌توان صف‌ها را به صورت نامتناهی و بدون محدودیت در ظرفیت تجسم نمود اما در صورتی که صف را توسط آرایه‌ای با طول ثابت پیاده سازی کنیم ظرفیت آن ثابت خواهد بود. با درنظر گرفتن این آرایه به صورت یک دایره می‌توان یک صف حلقوی ایجاد نمود. در این نوع Queue لزوما انتهای آرایه، انتهای صف نیست بلکه می‌توان از فضای خالی به وجود آمده در ابتدای آرایه (به دلیل اعمال Dequeue)، برای افزودن عناصر جدید استفاده نمود. در صورتی که Queue پر باشد و بخواهیم عنصر جدیدی به آن اضافه کنیم حالتی به نام سرریز (Overflow) رخ می‌دهد. به طور مشابه در صورتی که بخواهیم روی یک Queue خالی، عمل Dequeue را انجام دهیم حالت زیرریز (Underflow) رخ خواهد داد.

استفاده از لیست‌های پیوندی (Linked List) برای پیاده‌سازی صف می‌تواند محدودیت تعداد عناصر قابل نگه‌داری در این ساختمان داده را از میان بردارد. به عبارت بهتر در این نوع پیاده سازی برخلاف حالتی که از آرایه برای انجام این کار استفاده می‌شود نیازی به مشخص نمودن ظرفیت صف هنگام ایجاد آن وجود ندارد.

اعمال حذف و اضافه روی یک صف
اعمال حذف و اضافه روی یک Queue

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

تولید و انتشار محتوای تخصصی علاوه بر زمان، هزینه هم دارد. بخش عمده هزینه‌های تک‌دیک با بودجه شخصی و حمایت‌های شما کاربران گرامی تأمین می‌شود. اگر محتوای این صفحه برای شما مفید واقع شده با روش‌های مختلفی از سراسر دنیا می‌توانید در تکمیل و تداوم فعالیت این سایت به گروه کوچک ما کمک کنید و در اجر معنوی آن نیز سهیم شوید. ما صمیمانه قدردان این محبت شما هستیم.

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

دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نوشته‌های بیشتر

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