ট্র্যাক
/
Delphi Pascal
Delphi Pascal
/
অনুশীলনী
/
সার্কুলার বাফার
সার্কুলার বাফার

সার্কুলার বাফার

মধ্যম

নির্দেশনা

সার্কুলার বাফার, সাইক্লিক বাফার বা রিং বাফার হলো এমন একটি ডেটা স্ট্রাকচার, যা একটি একক, নির্দিষ্ট আকারের বাফারকে এমনভাবে ব্যবহার করে যেন সেটি প্রান্ত থেকে প্রান্তে সংযুক্ত।

একটি সার্কুলার বাফার শুরুতে খালি থাকে এবং এর একটি পূর্বনির্ধারিত দৈর্ঘ্য থাকে। উদাহরণস্বরূপ, এটি ৭টি এলিমেন্টের একটি বাফার:

[ ][ ][ ][ ][ ][ ][ ]

ধরে নিন বাফারের মাঝখানে একটি 1 লেখা হলো (সার্কুলার বাফারে ঠিক কোথায় শুরু হবে তা গুরুত্বপূর্ণ নয়):

[ ][ ][ ][1][ ][ ][ ]

তারপর ধরে নিন আরও দুটি এলিমেন্ট, 2 ও 3, যোগ করা হলো, যেগুলো 1-এর পরে যুক্ত হয়:

[ ][ ][ ][1][2][3][ ]

এরপর যদি বাফার থেকে দুটি এলিমেন্ট সরিয়ে নেওয়া হয়, তবে বাফারের ভেতরের সবচেয়ে পুরনো মানগুলো সরিয়ে নেওয়া হয়। এই ক্ষেত্রে সরিয়ে নেওয়া দুটি এলিমেন্ট হলো 1 ও 2, ফলে বাফারে শুধু 3 থাকে:

[ ][ ][ ][ ][ ][3][ ]

বাফারে ৭টি এলিমেন্ট থাকলে সেটি পুরোপুরি পূর্ণ:

[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]

সূত্র

Wikipediaলিংকটি নতুন উইন্ডো বা ট্যাবে খোলে
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Delphi Pascal Exercism

সার্কুলার বাফার শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Delphi Pascal ট্র্যাকের 76টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।

ডিপ ডাইভ: সার্কুলার বাফার!

এই ভিডিওতে আমরা সার্কুলার বাফার দেখব: এগুলো কী, কোথায় ব্যবহৃত হয় এবং এর বিভিন্ন ইমপ্লিমেন্টেশন, যার মধ্যে রয়েছে কিউ, স্ট্যাটিক ও ডাইনামিক অ্যারে, ইমিউটেবল ডেটা স্ট্রাকচার এবং একটি মজার এজেন্ট-ভিত্তিক ইমপ্লিমেন্টেশন।