المخزن المؤقت الدائري، أو المخزن المؤقت الدوري، أو مخزن الحلقة، هو بنية بيانات تستخدم مخزنًا مؤقتًا واحدًا ثابت الحجم كما لو كان موصولًا من طرفه بطرَفه.
يبدأ المخزن المؤقت الدائري فارغًا وله طول محدد مسبقًا. على سبيل المثال، هذا مخزن من 7 عناصر:
[ ][ ][ ][ ][ ][ ][ ]
افترض أن العدد 1 كُتب في منتصف المخزن (لا يهم موضع البداية الدقيق في المخزن الدائري):
[ ][ ][ ][1][ ][ ][ ]
ثم افترض أنه أُضيف عنصران آخران، 2 و3، يُضافان بعد 1:
[ ][ ][ ][1][2][3][ ]
إذا أُزيل عنصران بعد ذلك من المخزن، فستُزال أقدم القيم الموجودة داخل المخزن. العنصران المُزالان في هذه الحالة هما 1 و2، ولا يبقى في المخزن سوى 3:
[ ][ ][ ][ ][ ][3][ ]
إذا احتوى المخزن على 7 عناصر فهو ممتلئ تمامًا:
[5][6][7][8][9][3][4]
عندما يمتلئ المخزن يُرفَع خطأ يُنبّه العميل إلى أن الكتابات الإضافية محجوبة حتى تتحرر خانة.
عندما يمتلئ المخزن، يمكن للعميل أن يختار الكتابة فوق أقدم البيانات بكتابة قسرية.
في هذه الحالة يُضاف عنصران آخران، A وB، فيكتبان فوق 3 و4:
[5][6][7][8][9][A][B]
استُبدل 3 و4 بـA وB، فأصبح 5 هو أقدم بيانات في المخزن.
وأخيرًا، إذا أُزيل عنصران فما سيُرجع هو 5 و6، ليصبح المخزن:
[ ][ ][7][8][9][A][B]
ولأن هناك مساحة متاحة، إذا استخدم العميل الكتابة فوق مرة أخرى لتخزين C وD، فسيُستخدم المكان الذي كان يخزّن فيه 5 و6 سابقًا، لا موضع 7 و8.
لا يزال 7 أقدم عنصر، وقد امتلأ المخزن مرة أخرى.
[C][D][7][8][9][A][B]
سجّل في Exercism لتتعلّم وتتقن Raku عبر 94 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.
في هذا الفيديو نلقي نظرة على المخزن المؤقت الدائري: ما هو، وأين يُستخدم، وتطبيقاته المختلفة، بما في ذلك الطوابير والمصفوفات الثابتة والديناميكية وبنى البيانات غير القابلة للتغيير وتطبيق ممتع قائم على الوكلاء.