تاريخ التسجيل: 2007-10-06 مشاركات: 10
الجامعة: دمشق الكلية: الهندسة المعلوماتية المرحلة: السنة الثانية
|
منشان عملية الإعدام, أنا حليتها بهي الطريقة, والطريقة شغالة ومضمونة تمام:
أول شي ما رح أهتم بعملية الـ Insert بالسلسلة, لذلك رح أفرض أنكم دخلتو المحكومين عالسلسلة, طبعا ً المطلوب استخدام سلسلة دائرية مرتبطة من الطرفين, وبالتالي ما بيعود عنا شي أسمو رأس السلسة لكن فينا نقول عن الـ Pointer يلي رح منستعملو للوصول للسلسة Access Point وليس Head.
السلسلة شكلها دائري ومصفوفين المحكومين فيها, والـ Access Point بالبداية واقف على أول شخص نزلناه بهالسلسلة.
المطلوب أنو نضمر عدد معين ثابت لكل العملية, ونعد باتجاه اليمين من عند الـ Access Point, وقت منوصل للعدد يلي ضمرناه منعدم الشخص يلي وقفنا عندو, لكن قبل عملية الإعدام رح تعمل شغلة حلوة كتير, وهي أنو ننقل الـ Access Point تبع السلسلة لعند الشخص يلي على يسار يلي أعدمناه.
طيب كمان منشان تطلع الشغلة أحلى, المطلوب أنو بالمرة الجاية نعد بالمقلوب يعني لليسار, لذلك رح نحط متحول منطقي ونسميه مثلا ً GoRight, هالمتحول ببداية القصة بيكون True ويعني أنو لازم نعد باتجاه اليمين, وبعد كل عملية إعدام رح نعمل GoRight ← Not GoRight, وبالتالي بعد كل عملية إعدام رح يقلب المتحول من حالة للتانية.
طيب ليش حطينا الـ Access Point على يسار العنصر يلي أعدمناه؟
السبب أنو بدنا نبلش عد من عند العنصر يلي على يسار يلي أعدمناه, بس بالمرة الجاية بدنا نأعدم بالعكس يعني من على يمين العنصر يلي رح نعدمو, وبالتالي رح نكتب:
If GoRight Then
AccessPoint ← ItemToExecute.Left
Else
AccessPoint ← ItemToExecute.Right
وبالتالي منكون حلينا قصة اليمين واليسار والعد. بيصفى الحلقات يلي المفروض نشتغل البرنامج فيها, فالأفضل هو أنو نحط:
While CirularList.AccessPoint <> NIL Then
ItemToExecute ← CircularListAccessPoint
For I ← 2 To K
{Where K is the number we have chosen.}
{and we started by 2 because ItemToExecute is on the AccessPoint now and we will count him as 1}
[Move to the right or the left according to GoRight value]
[Move the AccessPoint according to GoRight value]
[Execute ItemToExecute]
GoRight ← Not GoRight
{}: Means a comment.
[]: Means an Algorithm.
تم تعديل الكود بوساطة mpcabd لتخطيه حدود الصفحة عرضيا ً.
L is the greatest 3 detectives on Earth.
|