اذهب إلى المحتوى

Recommended Posts

  • 0
نشر

مرحباً @ريان بهنام دانيال هندسة الحاسوب

سأحاول شرح الفكرة العامة وعليك أن تحول الشرح إلى كود لتطبقه بنفسك.

يجب أن تكون على دراية ببعض الأمور كـ (linked list أو queue أو غيرها من هياكل البيانات Data Structures)، ولكي تستطيع تنفيذ ال circular queue تحتاج لصنفين two classes

  1. صنف Node: يحتوي على قيمة وعنوان لعنصر آخر (Data & Another Node Address)
  2. صنف Queue: يحتوي على العمليات التي ستتم على ال circular queue وهي كالتالي:
  • Front: الحصول على أول عنصر في القائمة
  • Rear: الحصول على آخر عنصر في القائمة
  • (enQueue(value: إضافة عنصر لآخر القائمة
    • لاحظ أن أي عنصر جديد يتم إضافته في مكان Rear
    • وستكون الخطواط كالتالي:
      • عمل عنصر node جديد وإضافة قيمة له
      • التحقق من إذا كان Front يساوي null، إن تحقق الشرط (= true) إذا Front = Rear = العنصر الجديد newly node
      • إذا لم يتحقق الشرط (= false)، سيتم وضع العنصر الجديد في مكان Rear وتغيير العنوان الموجود في العنصر Rear القديم بعنوان العنصر Rear الجديد
      • لاحظ أن العنصر Rear يحتوي دائما على عنوان العنصر Front
  • ()deQueue: حذف أول عنصر في القائمة
    • لاحظ أن أول عنصر هو ما يتم حذفه أولاً، أي يتم حذف Front دائماً
    • وستكون الخطواط كالتالي:
      • التحقق من أن القائمة ليست فارغة ( Front != Null)
      • التحقق من أن العنصر Front يساوي العنصر Rear (القائمة تحتوي على عنصر واحد فقط)، حينها يتم تعيين قيمة null للعنصرين Front و Rear على حد سواء
      • في حالة لم يكونا متساويين (الثائمة تحتوي على أكثر من عنصر)، يتم حذف العنصر Front وتعيين العنصر الذي يليه مكانه وتغيير عنوان العنصر في Front الذي لدي العنصر Rear

Operations-on-Circular-Queue.thumb.png.68828e4bfbcb1e6a87c830124e09dd69.png

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...