অনুরোধ করে, প্রশ্নটি তৈরির পরে আমি এখানে সেই কাঠামোটি পেয়েছি:
মূল ধারণাটি হ'ল একটি নূন্যতম (এবং ভাল পরিমাপের জন্য, সর্বোচ্চটিও) এর সাথে পয়েন্টার সহ একটি থ্রেডেড স্কাইপিংগা গাছ ব্যবহার করা । থ্রেডিংয়ের একটি সহজ বিকল্প হ'ল প্রতিটি নোডের পূর্বসূরি এবং উত্তরসূরি পয়েন্টারগুলি বজায় রাখা (যা সমান, সহজ, তবে আরও ওভারহেড রয়েছে)। আমি এটিকে বলি ছাগলের গাদা বলতে এসেছি , কেবল এটির নাম দেওয়ার জন্য।
কেবলমাত্র এই প্রাথমিক কাঠামোটি আপনাকে এই ক্রিয়াকলাপ দেয়:
- অনুসন্ধান: একটি কী দেওয়া হয়েছে, সময়ে সংশ্লিষ্ট নোডকে একটি পয়েন্টার প্রদান করে ।O(logn)
- সন্নিবেশ: একটি কী দেওয়া, কাঠামোতে কী সন্নিবেশ করানো, সময়ে সেই নোডে একটি পয়েন্টার ফিরিয়ে দেয় ।O(logn)
- পূর্বসূরি / উত্তরসূরি: একটি পয়েন্টার দেওয়া, উত্তরাধিকারী বা পূর্বসূরিকে সময়ে প্রদান করে।O(1)
- গেট-মিন / সর্বাধিক: পয়েন্টারটি সর্বনিম্ন বা সর্বোচ্চকে দেয়।
স্কাইপোগা গাছের বিশ্লেষণে, মুছে ফেলার ভারসাম্যহীন ওভারহেডকে হিসাবে বিশ্লেষণ করা হয় , তবে বিশ্লেষণটি আসলে এর ভারসাম্য দেয় (যা কাগজে উপেক্ষা করা হয় যেহেতু তারা count মুছে ফেলতে হবে এমন নোডটি খুঁজে পেতে সময়ও গণনা করে )। সুতরাং, যদি আমরা একটি নোডের একটি পয়েন্টার আছে, আমরা এটা ধ্রুব সময় মুছে দিতে পারেন (যদি আপনি মধ্যে থ্রেডেড বাইনারি অনুসন্ধান বৃক্ষ এটি করতে পারেন সময়) এবং সঙ্গে মিলিত ভারসাম্যহীন ওভারহেড, এটি একটি সময় মুছে দেয়:ও ( 1 ) ও ( লগ এন ) ও ( 1 ) ও ( 1 ) ও ( 1 )O(logn)O(1)O(logn)O(1)O(1)O(1)
- মোছা: একটি পয়েন্টার দেওয়া, সময়ে নোড মুছে ফেলা হয় ।O(1)
এর সংমিশ্রণ:
- এক্সট্রাক্ট-মিনিট / সর্বাধিক: সময়ে সর্বনিম্ন / সর্বাধিক নোড মুছে দেয়O(1)
আপনি পয়েন্টারগুলি দিয়ে আরও কিছু করতে পারেন: উদাহরণস্বরূপ মিডিয়ান বা অন্য কোনও আদেশের পরিসংখ্যানের কাছে কোনও পয়েন্টার বজায় রাখা শক্ত নয়, সুতরাং আপনার যদি প্রয়োজন হয় তবে এই ধরণের পয়েন্টারগুলির একটি ধ্রুব সংখ্যা বজায় রাখতে পারেন।
কিছু অন্যান্য জিনিস:
- রচনা: সাজানো ক্রমে প্রদত্ত কীগুলি, সময়ে স্কিপবোটের হিপ তৈরি করুন ।nO(n)
- ভারসাম্য: গাছের ভারসাম্য রাখুন সুতরাং এটি সময়ে একটি সঠিকভাবে ভারসাম্য বাইনারি অনুসন্ধান গাছ গঠন করে (অনুসন্ধানের ওভারহেড হ্রাস করে (আপনি কাগজটি যেভাবে নির্দেশ দিয়েছিলেন তার চেয়ে দ্রুতগতিতে এটি করতে পারেন, ব্যবহার করে পূর্বসূরী / উত্তরসূরি পয়েন্টার)।O(n)
এবং পরিশেষে, আমি নিশ্চিত যে আপনি এই ক্রিয়াকলাপগুলিকে সমর্থন করতে পারবেন তবে আমি নিশ্চিত এটি জানার আগে এগুলি সম্পর্কে আরও কিছুটা চিন্তা করা দরকার:
- সন্নিবেশ-নতুন-মিন / সর্বাধিক: কাঠামোতে ইতিমধ্যে কোনও চাবি থেকে ছোট / বৃহত্তর একটি কী প্রদান করা হয়েছে, structure সময়ে সেই নোডে একটি পয়েন্টার ফিরিয়ে কাঠামোর মধ্যে কীটি সন্নিবেশ করানো হয় ।O(1)