تراكيب البيانات: الطابور

السلام عليكم

كنت أحاول في الفترة التي انقطعت فيها عنكم
أن أزيد قوة جيشي الجديد
بإضافة بعض القذائف وتبديل مضادات الدروع
ماذا؟! لم أحك لكم عنه
ظننت أنكم تعرفون
تعلمون أني في الفترة السابقة تلقيت عدة تهديدات
الأول كان الأخ عبده يمازحني
والثاني من الأخ JBoss
بالطبع لا مشكلة مع الأخ عبده
لكن الأخ JBoss لا يمزح أبداً
وقد قرر أن يتخذ خطوات غير مسبوقة
وأن يهاجم الساحل الشمالي من المحيط العلائي
(اعتبروها خطأ مطبعي :) )
لهذا قمت بتجهيز فرقة راجلة
من الفئران الأبطال (جيشي الجديد)
وقمت بتدريبهم على صد الهجمات الجيوبوصية
أتمنى أن تكون تدريباتي جيدة وإلا …

نعود إلى موضوعنا
كنا تحدثنا سابقاً عن المكدس
وقمنا بعمل واحد ثم قمنا ببعض التحسينات عليه
وطرحنا نقطة تفكير
هل وصل أحدكم إلى شيء بالنسبة لنقطة التفكير
لا أظن
يبدو لي أنكم لا تأخذون كلامي على محمل الجد
على العموم لم أعد أفكر في أن يستفيد أحد مما أكتب
وإنما أنا أكتب لأجل المتعة
اليوم سنتحدث عن الطابور Queue
بالطبع لا يحتاج إلى تعريف
وإلا ماكنا عرباً وما كان لنا أشقاء يعانون مشكلة طابور العيش

الميزة الأساسية في الطابور أن ما يدخل أولاً يخرج أولاً
وهذا ما اصطلح على تسميته FIFO
وهي اختصار للجملة
First In First Out
ويتم تمثيله بالشكل التالي
بداية الطابور –> العملية الأولى –> العملية الثانية –> … –> العملية الأخيرة –> نهاية الطابور
في أي طابور العناصر الجديدة تصطف في آخر الطابور
والعناصر التي تنتهي من الطابور تتركه

تعالوا نبني الطابور باستخدام الحلقات المتسلسلة أحادية الاتجاه
ماهي العمليات التي نحتاجها؟
1- الإضافة إلى النهاية
2- الحذف من البداية
جيد سنقوم بعمل كائن من الفئة SinglyLinkedList
ونستخدم الدوال السابقة
بالمناسبة الدوال الخاصة بالطابور تسمى بالطريقة التالية
أضف إلى الطابور enqueue واحذف من الطابور dequque

سنقوم الآن ببناء الفئة QueueList
أنا قمت ببناء واحدة

import SinglyLinkedListV2.SinglyLinkedList;public class QueueList {

private SinglyLinkedList list=new SinglyLinkedList();

public Object dequeueFirstt() {

return list.deleteFirst();

}

public void enqueueLast(Object obj) {

list.addLast(obj);

}

public boolean isEmpty() {

return list.isEmpty();

}

public Object top() {

return list.getFirst();

}

}

لقد قمنا ببناء الطابور الخاص بنا
وهذا عمل جيد
يظهر لنا أنه لا مشاكل مع الدوال المستخدمة
وهي جميعاً تعمل بتعقيد 1

بعض التطبيقات علي الطابور

1- في نظم التشغيل بالذات المنظمات schedulers
2- في تلبية طلبات الزبائن
3- أي شيء له مفهوم FIFO
بالطبع لن أقوم بشرح أياً من هذه التطبيقات حالياً
ربما في المستقبل أو ربما لن أشرحها مطلقاً
أظن أن هذا كاف ِ لليوم

تحياتي
شهيد الأقصى

Tags: , , ,

12 Responses to “تراكيب البيانات: الطابور”

  1. عبده قال:

    شكرا استاذ علاء ع الشرح الوافي
    والله يسترها معك ع الجيبوس ههههههه
    شكلو تاعبك ع الاخر

    بس انا نفسي اعرف مين الاخ عبدو هاد !!

  2. admin قال:

    العفو يا عبده
    أظن أنتا :)

    تحياتي

  3. توفيق قال:

    جوزيت خيرا يا اخ علاء

  4. admin قال:

    آمين يا رب
    أية أسئلة أخ توفيق أنا جاهز

    تحياتي

  5. saja قال:

    الله يسعدك ويخليك انت ساعدتني كتيييييييييييييييييييييير
    يسلموا والله .

  6. admin قال:

    لا تنسينا من صالح دعائكم

    تحياتي

  7. فؤاد قال:

    جيد جدا

  8. احمد قال:

    زي الزفت

  9. admin قال:

    لا مانع لدي من أن تقول سيء أو لم أستفد
    أو حتى زي الزفت
    لكني أمانع أن لا تقرن هذا الكلام بأسباب

    تحياتي

  10. alkima قال:

    السلام عليكم ورحمة الله وبركاته ..
    ارجو من الاخ العزيز قبولي صديقا لك انا طالب في علوم الحاسبات المرحلة الثانية وبصراحة كتابتك هاي فادتني شكرا لك وارجو منك مواصلة الكتابة لهذه المواضيع الهامة واكون جزيل الشكر الك لو تنشر كتابتك عن برنامج باسكال اكون ممنون الك شكرا مرة ثانية ( اخوك alkima )

  11. admin قال:

    بالطبع أقبل صداقتك
    سأحاول أن أكتب مرة أخرى في الموضوع لكني لا أعد على العموم أعتقد أني كتبت سلسلة مواضيع جيدة في تراكيب البيانات الخطية

    بالنسبة لموضوع كتابة البرامج بالباسكال فأعتذر لأني لا أعرف اللغة

  12. عمر فؤاد قال:

    السلام عليمكم انا طالب مبتدئ هل من يساعدني

Leave a Reply