আমার পরিচিত কেউ অদূর ভবিষ্যতে একটি পাঠ্য সম্পাদক বাস্তবায়নের পরিকল্পনা করছেন, যা আমাকে কোনও পাঠ্য সম্পাদকের জন্য কী ধরণের ডেটা কাঠামো দ্রুত about সর্বাধিক ব্যবহৃত কাঠামোগুলি দৃশ্যত দড়ি বা ফাঁক বাফার ।
ভ্যান এমডে বোস গাছগুলি প্রায় দ্রুত অগ্রাধিকারের সারির প্রায়, যদি আপনি এটিতে রাখতে পারেন এমন আইটেমের সংখ্যার উপর একটি উচ্চতর আবদ্ধতা এবং একটি বড় প্রারম্ভিক ব্যয় বিবেচনা না করে। আমার প্রশ্ন হ'ল এমন কোনও ডেটা কাঠামো রয়েছে যা ভ্যান এমডে বোস গাছের মতোই দ্রুত, তবে পাঠ্য সম্পাদক সম্পাদনা পরিচালনা সমর্থন করে।
আমাদের কেবলমাত্র আমাদের ডেটা স্ট্রাকচারে অক্ষর পর্যন্ত সমর্থন করতে হবে (সুতরাং যদি লগ এম = 32 হয় তবে আমরা 4 গিগাবাইট পর্যন্ত এএসসিআইআই অক্ষর সমর্থন করি)। আমরা অনুমোদিত √একটি নতুন ডেটা কাঠামো শুরু করার জন্য মি । আমরা নিম্নলিখিত ক্রিয়াকলাপ সমর্থন করতে চাই:
- একটি অবস্থানে অক্ষর ঢোকান মধ্যে হে ( লগ লগ মি ) (এবং যার ফলে 1 প্রতি পরবর্তী চরিত্রের অবস্থান বৃদ্ধি)।
- অবস্থানে একটি অক্ষর বিলোপ মধ্যে হে ( লগ লগ মি ) ।
- অবস্থানে চরিত্র ফিরুন মধ্যে হে ( লগ লগ মি ) ।
সুতরাং, সন্নিবেশ (0, 'এ') এর পরে সন্নিবেশ (0, 'বি') ফলাফল "বা"।
আরও ভাল এটি হবে:
- কিছু সূচক একটি 'পয়েন্টার' ফিরুন মধ্যে হে ( লগ লগ মি ) ।
- একটি 'পয়েন্টার' দেওয়া, এ এই অবস্থানে অক্ষরটি ফিরিয়ে দিন ।
- একটি 'পয়েন্টার' দেওয়া, এ এই অবস্থানের অক্ষরটি সরিয়ে ফেলুন ।
- একটি 'পয়েন্টার' দেওয়া, এ এই অবস্থানে একটি অক্ষর যুক্ত করুন এবং একটি পয়েন্টার নিম্নলিখিত অবস্থানে ফিরিয়ে দিন।
- (alচ্ছিক) একটি 'পয়েন্টার' দেওয়া, এর পরবর্তী / পূর্ববর্তী অক্ষরে একটি 'পয়েন্টার' ফিরিয়ে দিন ।