170 likes | 551 Views
4- الطوابير و الارتال. مفهوم الطوابير و الارتال . مبدأ عمل الطوابير و الارتال. العمليات على الطوابير. 1- عمليات الاضافة ( Insert )، وتكون في المؤخرة ( Rear ) 2- عمليات الحذف ( delete )، وتكون من مقدمة الطابور ( Front ) 3- عمليات الفحص : أ- فارغ ( Isemept ).
E N D
مفهوم الطوابير و الارتال . • مبدأ عمل الطوابير و الارتال. • العمليات على الطوابير. 1- عمليات الاضافة (Insert)، وتكون في المؤخرة (Rear) 2- عمليات الحذف (delete )، وتكون من مقدمة الطابور (Front) 3- عمليات الفحص : أ- فارغ ( Isemept). ب- ممتلئ ( isfull).
1- مفهوم الطابور:- • الطابور :- نوع من التراكيب لبيانات من نفس النوع. • مبدأ العمل : تتم الإضافة من طرف (المؤخرة ) والحذف من الطرف الأخر . من يدخل أولا يخرج أولا FIFO )) FIFO: First In First Out
الاشكال التالية تمثل طابور يحتوي على ثلاثة عناصر هي ........... • الشكل (24-3) يمثل الطابور . 1- ما هو مقدمة الطابور (Front)....... 2- ما هو مؤخرة الطابور (Rear)........ • الشكل (25-3) يمثل حذف عنصر من الطابور 1- العنصر المحذوف هو :........ 2- ما هو مقدمة الطابور ......... 3- ما هو مؤخرة الطابور......... • الشكل(26-3) ، أضيف الى الطابور عنصر D • ثم E أين يقع العنصر E
العمليات على الطابور • الإضافة : ( Insert) تتم من المؤخرة • الحذف: ( (Delete تتم من المقدمة • فحص الطابور : ( isempty) فارغ أم لا قبل الحذف • فحص الطابور: (isfull) ممتلئ أم لا قبل الإضافة .
تمثيل الطابور في الحاسوب • يمكن تمثيل الطابور باستخدام مصفوفة احادية، عدد عناصرها يحدد سعة الطابور، • الاعلان عن متغيرين :- 1- Front : يدل على موقع العنصر المرشح للحذف. 2- Rear: يدل على موقع العنصر الذي يتم ادخاله.
الاعلان عن الطابور ( فارغ ، ممتلئ) • في البداية نجعل FRONT = 0 • REAR = -1 • يكون الطابور فارغا عندما FRONT > REAR • (عدد العناصر= صفر .) • يكون الطابور ممتلئا عندما يكون عدد العناصر= سعته • نحسب عدد العناصر كالتالي: • N = REAR - FRONT +1
الحل:- • في البداية:- Front =0 Rear= -1 ( الطابور فارغ) عدد العناصر : n= Rear-Front+1 = -1 -0 +1 = 0
عملية الاضافة (Insert) • خوارزمية عملية اضافة عنصر(A) الى طابور :- • 1- اذا كان الطابور(Q)ممتلئا ، أكتب ” لا يمكن الاضافة) ، اذهب الى الخطوة ( 4 ) . • 2- Rear = Rear +1 • 3- Q(Rear) = A • 4- قف. • عدد العناصر : n=Rear-Front+1 = 0-0+1 = 1
اضافة عنصران B,C الى الطابور Q • خوارزمية عملية اضافة عنصر(B) الى طابور :- • 1- اذا كان الطابور(Q)ممتلئا ، أكتب ” لا يمكن الاضافة) ، اذهب الى الخطوة ( 4 ) . • 2- Rear = Rear +1 • 3- Q(Rear) = B • 4- قف. عدد العناصر n= Rear-Front+1 = 1-0+1 = 2
خوارزمية عملية اضافة عنصر(C) الى طابور :- • 1- اذا كان الطابور(Q)ممتلئا ، أكتب ” لا يمكن الاضافة) ، اذهب الى الخطوة ( 4 ) . • 2- Rear = Rear +1 • 3- Q(Rear) = C • 4- قف. عدد العناصر n= Rear-Front+1 = 2-1+1 = 3
التعبير عن عملية الاضافة بلغة الفيجول بيسك • IF N= SIZE THEN • PRINT “FULL” • ELSE • REAR=REAR+1 • Q(REAR)= F • END IF F: قيمة العنصر المراد اضافته. N: عدد العناصر في المصفوفة. Q: اسم الطابور
عملية الحذف (Delete)من الطابور • خوارزمية عملية اضافة عنصر(C) الى طابور المشار اليه Front :- • 1- اذا كان الطابور(Q)فراغا ، أكتب ” لا يمكن الحذف) ، اذهب الى الخطوة ( 4 ) . • 2- نخزن العنصر المراد حذفه في متغير جديد( X) X= Q(Front) • 3-موقع العنصر المراد حذفه • تحرك خطوة Front= Front +1 • 4- قف.
عدد العناصر n Front=Front+1 N= Rear-Front+1 = 2-1+1 = 2 بعد حذف العنصر B عدد العناصر n N= Rear-Front+1 =2-2+1 =1 الاشكال التالية تمثل عملية حذف العنصر A,B
لاضافة العنصران E,D الى المصفوفة بعد حذف A,B • بتيع نفس الخوارزمية السابقة :- • عند اضافة E Front = 2 , Rear = 2 Rear = Raer+1 = 2+1 =3 عدد العناصر = N=Rear-Front+1 =3-2+1=2 عند اضافةDRear= Rear+1 =4 N= 4-2+1 = 3
قد نصل إلى حالة : • مثلا نريد أن نضيف عنصرا إلى المصفوفة المجاورة. • نفحص هل ممتلئة حسب عدد العناصر :الجواب لا ! • نزيد قيمة REAR=REAR+1 • نحصل على القيمة 5 للمتغير REAR • عندما نقوم بإدخال القيمة للمتغير Q(REAR) أي Q(5) • يظهر خطأ لأن موقع أخر عنصر هو Q(4) ! • من هنا نتجت فكرة الطوابير الدائرية .