جافا سكريبت

Queue في الجافا سكريبت

في هذا القسم ، سنأخذ مقدمة عن الطابور (QUEUE) ونرى أيضًا كيفية تنفيذ الطابور(QUEUE) في JavaScript.

ما هو الطابور (QUEUE) ؟
الطابور او قائمة الانتظار هي بنية بيانات حيث يتم تنظيم البيانات في شكل قائمة انتظار. يمكننا أن نفهم قائمة انتظار مشابهة لقائمة انتظار الرجال المنظمة للتصويت والتي يعطي فيها الرجل الذي يقف أولاً في قائمة الانتظار التصويت أولاً ثم يترك قائمة الانتظار. يحدث نفس الشيء في حالة قائمة انتظار البيانات حيث تتم إزالة العنصر الموجود في الموضع الأول أولاً وهكذا. وبالتالي، قائمة الانتظار يتبع FIFO المبدأ، أي أولا في، أولا خارج . هذا يعني أن العنصر الذي وصل أولاً ستتم إزالته من قائمة الانتظار أولاً. وبالتالي ، فإن بنية بيانات قائمة الانتظار هي قائمة مرتبة من قيم البيانات حيث يتم إدراج القيم من نهاية قائمة الانتظار ويتم إزالتها من الجانب الأمامي لقائمة الانتظار.

دعونا نرى مثالاً يمكننا من خلاله فهم تنفيذ قائمة الانتظار/الطابور:

class Queue1 { constructor (){ this.data = []; this.rear = 0; this.size = 10; } }
Code language: JavaScript (javascript)

في الكود أعلاه ، استخدمنا المتغيرات الثلاثة التالية حيث يحدد كل متغير استخدامه على النحو التالي:
data: هي المصفوفة التي نخزن فيها قيم أو عناصر قائمة الانتظار.
rear: هو المتغير الذي يستخدم لتخزين قيمة الموضع حيث سيتم إدراج العنصر التالي في قائمة الانتظار.
size: هو الحجم المحدد لقائمة الانتظار الذي سيخبرنا بعدد العناصر الموجودة في قائمة الانتظار.
لذلك ، على غرار عمليات المكدس ، هناك أيضًا عمليتان رئيسيتان لقائمة انتظار يمكننا من خلالها إدراج عنصر في المكدس أو إزالة عنصر موجود منه. هذه العمليات هي:
Enqueue: عملية قائمة الانتظار هي العملية التي يتم استخدامها عندما نحتاج إلى إدراج عنصر في قائمة الانتظار. يقوم بإدراج عنصر من النهاية الخلفية لقائمة الانتظار.
مثال:

enqueue(ele) { if(this.rear < this.size ) { this.data[this.rear] = ele; thisthis.rear = this.rear + 1; } }}
Code language: JavaScript (javascript)


Dequeue: يتم استخدام عملية dequeue عندما نحتاج إلى حذف أو إزالة العناصر الموجودة من قائمة الانتظار. تُستخدم عملية dequeue لإزالة عنصر موجود من الواجهة الأمامية لقائمة الانتظار.
مثال :

dequeue() { if(this.isEmpty() === false) { thisthis.rear = this.rear-1; return this.data.shift(); } }
Code language: JavaScript (javascript)

Length (): تُستخدم عملية قائمة الانتظار لإرجاع طول قائمة الانتظار

length() { return this.rear; }
Code language: JavaScript (javascript)

فيما يتعلق بهذه الطرق الرئيسية لقائمة الانتظار ، هناك بعض الطرق الأخرى المتاحة أيضًا التي يمكن تطبيقها على قائمة الانتظار ، وهي:
Peek (): تُستخدم طريقة peek () للحصول على القيمة الموجودة في الواجهة الأمامية لقائمة الانتظار.
isEmpty (): تُستخدم هذه العملية للتحقق مما إذا كانت قائمة الانتظار تحتوي على عناصر أم أنها فارغة.

isEmpty() { return this.rear === 0; }
Code language: JavaScript (javascript)

printQueue (): تُستخدم الدالة printQueue () لإرجاع جميع العناصر الموجودة في قائمة الانتظار في شكل سلسلة.

print() { for(let i =0; i < this.rear; i++) { console.log(this.data[i]); } }
Code language: JavaScript (javascript)

clear () : تُستخدم عملية الطابور لمسح أو حذف جميع عناصر قائمة الانتظار وتجعل قيمة الجزء الخلفي تساوي 0

clear() { this.data.length = 0; this.rear = 0; }
Code language: JavaScript (javascript)



تنفيذ طابور / QUEUE جافا سكريبت

class Queue { constructor(){ this.data = []; this.rear = 0; this.size = 20; } enqueue(ele) { if(this.rear < this.size ) { this.data[this.rear] = ele; thisthis.rear = this.rear + 1; } } length() { return this.rear; } isEmpty() { return this.rear === 0; } getFront() { if(this.isEmpty() === false) { return this.data[0]; } } getLast() { if(this.isEmpty() === false) { return this.data[ this.rear - 1 ] ; } } dequeue() { if(this.isEmpty() === false) { thisthis.rear = this.rear-1; return this.data.shift(); } } print() { for(let i =0; i < this.rear; i++) { console.log(this.data[i]); } } clear() { this.data.length = 0; this.rear = 0; } }
Code language: JavaScript (javascript)

على الرغم من أن وظائف قائمة الانتظار هي نفسها في كل لغة برمجة ، إلا أن الاستخدام وبناء الجملة يختلفان حسب لغة البرمجة.

اظهر المزيد

مقالات ذات صلة

زر الذهاب إلى الأعلى

أنت تستخدم إضافة Adblock

الاعلانات هي مصدرنا الوحيد لدفع التكلفة التشغيلية لهذا المشروع الريادي يرجى الغاء تفعيل حاجب الأعلانات