কম্পিউটার

বাইনারি সার্চ ট্রিতে ডিকশনারি অপারেশন করার জন্য C++ প্রোগ্রাম


একটি বাইনারি সার্চ ট্রি হল একটি সাজানো বাইনারি ট্রি যেখানে সমস্ত নোডের দুটি বৈশিষ্ট্য রয়েছে—

একটি নোডের ডান সাব-ট্রিতে মূল নোডের কী থেকে বড় একটি কী থাকে৷

একটি নোডের বাম সাব-ট্রিতে মূল নোডের কী থেকে কম বা সমান একটি কী থাকে৷

প্রতিটি নোডে দুটির বেশি সন্তান থাকা উচিত নয়৷

এটি একটি C++ প্রোগ্রাম যা একটি বাইনারি সার্চ ট্রিতে ডিকশনারি অপারেশন সম্পাদন করে।

অ্যালগরিদম

ঢোকানোর জন্য:

 শুরু করুন ফাংশন সন্নিবেশ (int k) in =int(k mod max) p[in] =(n_type*) malloc(sizeof(n_type)) p[in]->d =k যদি (r[in] ==NULL) তারপর r[in] =p[in] r[in]->n =NULL t[in] =p[in] অন্য t[in] =r[in] যখন (t[in]-> n !=NULL) t[in] =t[in]->n t[in]->n=p[in]শেষ।

একটি মান অনুসন্ধানের জন্য:

 শুরু করুন ডিক্লেয়ার ফাংশন সার্চ>d==k) তারপর "সার্চ কী পাওয়া গেছে" প্রিন্ট করুন। ফ্ল্যাগ =1 বিরতি অন্য t[in] =t[in]->n যদি (পতাকা ==0) প্রিন্ট "সার্চ কী পাওয়া যায়নি"। শেষ।

মোছার জন্য:

 শুরু করুন ডিলিট_এলিমেন্ট(int k) in =int(k mod max) t[in] =r[in] যখন (t[in]->d!=k এবং t[in] !=NULL) p [in] =t[in] t[in] =t[in]->n p[in]->n =t[in]->n মুছে ফেলা উপাদান t[in]->d =-1 t[ in] =NULL free(t[in])End

উদাহরণ

#include#includeনেমস্পেস ব্যবহার করে std;# সর্বোচ্চ 20typedef struct অভিধান সংজ্ঞায়িত করুন { int d; struct অভিধান *n;} n_type;n_type *p[max], *r[max], *t[max];class Dict { public:int in; ডিক্ট(); অকার্যকর সন্নিবেশ (int); অকার্যকর অনুসন্ধান (int); void delete_element(int);};int main(int argc, char **argv) { int v, choice, n, num; char c; ডিক্ট ডি; করুন { cout <<"\n1. তৈরি করুন"; cout <<"\n2. একটি মান অনুসন্ধান করুন"; cout<<"\n3. একটি মান মুছুন"; cout <<"\nআপনার পছন্দ লিখুন:"; cin>> পছন্দ; সুইচ (পছন্দ) { কেস 1:cout <<"\n সন্নিবেশ করা উপাদানগুলির সংখ্যা লিখুন:"; cin>> n; cout <<"\n সন্নিবেশ করাতে উপাদানগুলি লিখুন:"; জন্য (int i =0; i > সংখ্যা; d. সন্নিবেশ (সংখ্যা); } বিরতি; কেস 2:cout <<"\nঅনুসন্ধান করা উপাদানটি লিখুন:"; cin>> n; d. search(n); কেস 3:cout <<"\n মুছে ফেলার উপাদানটি লিখুন:"; cin>> n; d.delete_element(n); বিরতি ডিফল্ট:cout <<"\nঅবৈধ পছন্দ...."; বিরতি } cout <<"\nচালিয়ে যেতে y লিখুন......"; cin>> c; } while (c =='y');}Dict::Dict() { in =-1; জন্য (int i =0; i <সর্বোচ্চ; i++) { r[i] =NULL; p[i] =NULL; t[i] =NULL; }}void Dict::insert(int k) { in =int(k % max); p[in] =(n_type*) malloc(sizeof(n_type)); p[in] ->d =k; যদি (r[in] ==NULL) { r[in] =p[in]; r[in]->n =NULL; t[in] =p[in]; } else { t[in] =r[in]; যখন (t[in]->n !=NULL) t[in] =t[in]->n; t[in]->n=p[in]; }} void Dict::search(int k) { int flag =0; in=int(k % সর্বোচ্চ); t[in] =r[in]; যখন (t[in] !=NULL) { if (t[in]->d==k) { cout <<"\nসার্চ কী পাওয়া গেছে!!"; পতাকা =1; বিরতি } else t[in] =t[in]->n; } if (flag ==0) cout <<"\nsearch key পাওয়া যায়নি.......";}void Dict::delete_element(int k) { in =int(k % max); t[in] =r[in]; যখন (t[in]->d!=k &&t[in] !=NULL) { p[in] =t[in]; t[in] =t[in]->n; } p[in]->n =t[in]->n; cout <<"\n" <d <<" মুছে ফেলা হয়েছে।"; t[in] ->d =-1; t[in] =NULL; free(t[in]);}

আউটপুট

<প্রে>1.তৈরি করুন2.একটি মান অনুসন্ধান করুন3.একটি মান মুছুন আপনার পছন্দটি লিখুন:1প্রবেশ করা হবে এমন উপাদানের সংখ্যা লিখুন:3প্রবেশ করা হবে এমন উপাদানগুলি লিখুন:111 222 3333চালিয়ে যেতে y লিখুন......y1.Create2. একটি মান অনুসন্ধান করুন3. একটি মান মুছুন আপনার পছন্দটি লিখুন:2 অনুসন্ধান করার জন্য উপাদানটি প্রবেশ করান:111 অনুসন্ধান কী পাওয়া গেছে! মুছে ফেলার উপাদানটি প্রবেশ করান:222222 মুছে ফেলা হয়েছে৷ চালিয়ে যেতে y লিখুন......y1. তৈরি করুন2৷ একটি মান অনুসন্ধান করুন3.একটি মান মুছুন আপনার পছন্দটি লিখুন:222অবৈধ পছন্দ....চালিয়ে যেতে y লিখুন......y1.তৈরি করুন2.একটি মান অনুসন্ধান করুন3.একটি মান মুছুন আপনার পছন্দটি লিখুন:2অনুসন্ধান করা উপাদানটি প্রবেশ করান:222অনুসন্ধান করুন কী পাওয়া যায়নি....... মুছে ফেলার উপাদানটি প্রবেশ করান:0
  1. C++ এ একটি বাইনারি সার্চ ট্রিতে ঢোকান

  2. C++ এ বাইনারি ট্রি থেকে বাইনারি সার্চ ট্রি কনভার্সন

  3. C++ প্রোগ্রামে বাইনারি অনুসন্ধান?

  4. একটি বাইনারি অনুসন্ধান গাছে বাম ঘূর্ণন সম্পাদনের জন্য C++ প্রোগ্রাম