নিম্নলিখিত দুটি ক্রিয়াকলাপ সাপেক্ষে আইটেমগুলির ক্রম বজায় রাখতে পারে এমন ডেটা স্ট্রাকচার সম্পর্কে কী জানা যায়?
- পুশ (এক্স): অনুক্রমের শেষে x যুক্ত করুন, এবং ক্রমটির অবস্থানের জন্য একটি শনাক্তকারীকে ফিরিয়ে দিন
- এক্সট্রাক্ট (এস): শনাক্তকারীদের একটি আনর্ডারড সেট দেওয়া হয়েছে, সিকোয়েন্স থেকে সেই অবস্থানগুলিতে আইটেমগুলি সরিয়ে ফেলুন এবং সিকোয়েন্স ক্রমে মুছে ফেলা আইটেমগুলির একটি তালিকা ফিরিয়ে দিন
আপনি যদি পছন্দ করেন তবে এটি স্ট্যাক বা একটি বিভক্ত ক্রিয়াকলাপের একটি সারি হিসাবে মনে করতে পারেন যা এটি দুটি স্ট্যাকের মধ্যে বিভক্ত হয়: এক্সট্রাক্ট অপারেশনটি একটি পপ বা শনাক্তকরণ ক্রিয়াকলাপ বাস্তবায়নের জন্য ব্যবহার করা যেতে পারে এবং আইটেমগুলির উত্তোলিত ক্রমটিও স্থাপন করা যেতে পারে আবার আলাদা স্ট্যাক বা কাতারে ফিরে আসুন।
আমি ইতিমধ্যে যা জানি: দ্বিগুণ-সংযুক্ত তালিকা হিসাবে একটি ক্রম বজায় রাখতে পারে, যেখানে প্রতিটি শনাক্তকারী কোনও সংযুক্ত-তালিকা নোডের কেবলমাত্র একটি পয়েন্টার এবং প্রতিটি নোড এমন একটি পজিশন নম্বরও সঞ্চয় করে যা দুটি অপ্রাসঙ্গিক উপাদানগুলির অবস্থানের মধ্যে দ্রুত তুলনা করার অনুমতি দেয় অনুক্রমের মধ্যে। ডাটা স্ট্রাকচারের অগ্রগতির সাথে অবস্থানের সংখ্যাগুলি আপডেট করা কঠিন নয় যাতে এগুলি সর্বাধিক মান এর ইতিবাচক পূর্ণসংখ্যার হয় , যেখানে তালিকার আইগুলির বর্তমান সংখ্যা হ'ল । এই ডেটা কাঠামোর সাহায্যে এক্সট্রাক্ট অপারেশনের একমাত্র কঠিন অংশটি উত্তোলিত আইটেমগুলিকে তাদের অবস্থানের সংখ্যা অনুসারে বাছাই করা। আইটেমগুলির একটি নিষ্কাশন নেয়কে ও ( কে √) উদাহরণস্বরূপ, FOCS 2002 থেকে হান এবং থারুপের পূর্ণসংখ্যা বাছাইয়ের অ্যালগরিদম ব্যবহার করে এলোমেলোভাবে সময় প্রত্যাশিত হয়েছিল এবং ধাক্কা দেওয়ার জন্য অবিচ্ছিন্ন সময় লাগে।
যা আমি জানি না: সময়ে এক্সট্র্যাক্ট পরিচালনা করা এবং ধ্রুবক সময়ে ধাক্কা দেওয়া কি সম্ভব ? এই সমস্যা আছে কি সাহিত্য আছে? এটি কি পূর্ণসংখ্যার বাছাইয়ের মতো শক্ত?
অনুপ্রেরণা: কফম্যান-গ্রাহাম শিডিয়ুলিং অ্যালগরিদমের আইটেমগুলি অর্ডার করার জন্য এটি প্রয়োজনীয় প্রাথমিক পদক্ষেপ, যার গ্রাফ অঙ্কনে অ্যাপ্লিকেশন রয়েছে। কফম্যান-গ্রাহামের শক্ত অংশটি একটি অভিধান সংক্রান্ত টপোলজিকাল ক্রম। এটি প্রতিটি পৃথক gনগ্রাহীকরণের জন্য, বাকী অনুচ্ছেদের দ্বারা অনুপ্রাণিত সাবগ্রাফ্টে সেই অনগ্রহের সাথে অনুভূমিকগুলির একটি ক্রম বজায় রেখেই করা যায়। তারপর, বারবার প্রথম প্রান্তবিন্দু অপসারণ শূন্য indegree ছেদচিহ্ন ক্রম থেকে টপোলজিকাল অর্ডার থেকে এটি যোগ; তারা পূর্ববর্তী ডিগ্রি থেকে এর প্রতিবেশীদের সরিয়ে ফেলুন এবং পরবর্তী ছোট ডিগ্রির জন্য অনুক্রমের দিকে ঠেলে দিন। সুতরাং একটিভি ও ( কে ) এই ডেটা স্ট্রাকচারে এক্সট্রাক্ট অপারেশনের সময় কফম্যান-গ্রাহাম অ্যালগরিদমের লিনিং টাইম প্রয়োগের দিকে নিয়ে যায়।
যেহেতু প্রাথমিকভাবে এটি জিজ্ঞাসা করা হয়েছিল সেহেতু আমি 1976 সাল থেকে একটি কাগজ পেয়েছি যা কফম্যান – গ্রাহাম অ্যালগরিদমকে রৈখিক সময়ে প্রয়োগ করার অনুমতি দেয় এবং এটি আমার উইকিপিডিয়া নিবন্ধে কফম্যান – গ্রাহাম অ্যালগরিদমের অন্তর্ভুক্ত করে , তাই মূল প্রেরণাটি কম অর্থবহ। যদিও এখনও উত্তরটি কী তা আমি উত্সাহী।