কম্পিউটার

সি++ এ ফোন ডিরেক্টরি ডিজাইন করুন


ধরুন আমরা একটি ফোন ডিরেক্টরি ডিজাইন করতে চাই যা নিম্নলিখিত ক্রিয়াকলাপগুলিকে সমর্থন করে -

  • get − এটি এমন একটি নম্বর প্রদান করবে যা কাউকে বরাদ্দ করা হয়নি।

  • চেক − এটি একটি নম্বর উপলব্ধ কি না তা পরীক্ষা করবে৷

  • মুক্তি - এটি একটি সংখ্যাকে পুনর্ব্যবহার করবে বা প্রকাশ করবে৷

ইনিশিয়ালাইজার ব্যবহার করে, আমরা প্রথমে n সংখ্যা শুরু করতে পারি

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • একটি সেট s

    সংজ্ঞায়িত করুন
  • উপলব্ধ একটি সারি সংজ্ঞায়িত করুন

  • ইনিশিয়ালাইজার সর্বোচ্চ নম্বর নেবে।

  • N :=সর্বোচ্চ সংখ্যা

  • আরম্ভ করার জন্য i :=0, যখন i

    • আমি উপলব্ধ মধ্যে ঢোকান

  • একটি ফাংশন সংজ্ঞায়িত করুন get()

  • যদি উপলব্ধ আকার 0 এর সমান হয়, তাহলে −

    • রিটার্ন -1

  • x :=উপলব্ধ প্রথম উপাদান

  • s

    -এ x ঢোকান
  • উপলব্ধ থেকে উপাদান মুছুন

  • রিটার্ন x

  • একটি ফাংশন চেক () সংজ্ঞায়িত করুন, এটি নম্বর নেবে,

  • যদি সংখ্যা>=N বা সংখ্যা <0, তাহলে −

    • মিথ্যা ফেরত দিন

  • রিটার্ন সত্য সংখ্যা s

    এ নেই
  • একটি ফাংশন রিলিজ সংজ্ঞায়িত করুন(), এটি সংখ্যা নেবে,

  • যদি চেক (সংখ্যা), তারপর -

    • ফেরত

  • x :=সংখ্যা

  • s

    থেকে x মুছুন
  • উপলব্ধ মধ্যে x ঢোকান

উদাহরণ

আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -

#include নেমস্পেস std;class PhoneDirectory ব্যবহার করে সারি=N || number <0) return false; রিটার্ন s.find(number) ==s.end(); } void release(int number){ if (check(number)) return; int x =সংখ্যা; s.erase(x); available.push(x); }};প্রধান(){ PhoneDirectory ob(3); cout <<(ob.get()) < 

ইনপুট

ob.get();ob.get();ob.check(2);ob.get();ob.check(2);ob.release(2);ob.check(2); 

আউটপুট

011201

  1. C++ এ মিতব্যয়ী নম্বর

  2. C++ পেন্টাটোপ নম্বর

  3. C++ এ ছিটমহলের সংখ্যা

  4. C++ এ অ্যাডাম নম্বর