কম্পিউটার

লিস্ট হেড সহ হ্যাশ টেবিল চেইনিং বাস্তবায়নের জন্য C++ প্রোগ্রাম


একটি হ্যাশ টেবিল হল একটি ডেটা স্ট্রাকচার যা কী-মান জোড়া সংরক্ষণ করতে ব্যবহৃত হয়। হ্যাশ ফাংশন হ্যাশ টেবিল দ্বারা একটি অ্যারেতে একটি সূচক গণনা করতে ব্যবহৃত হয় যেখানে একটি উপাদান সন্নিবেশ করা হবে বা অনুসন্ধান করা হবে৷

এটি তালিকা প্রধানের সাথে হ্যাশ টেবিল চেইনিং বাস্তবায়নের জন্য একটি C++ প্রোগ্রাম।

অ্যালগরিদম

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

 শুরু করুন ডিক্লেয়ার ফাংশন Insert(int k, int v) int hash_v =HashFunc(k) if (ht[hash_v] ==NULL) ht[hash_v] =নতুন ListHead(k, v) অন্য ListHead *en =ht[ hash_v] যখন (en->n !=NULL) en =en->n যদি (en->k ==k) en->v =v else en->n=নতুন ListHead(k, v)End৷ 

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

 শুরু Decla ফাংশন SearchKey(int k) int hash_v =HashFunc(k) যদি (ht[hash_v] ==NULL) ফেরত দেয় -1 else ListHead *en =ht[hash_v] যখন (en !=NULL এবং en-> k !=k) en=en->n যদি (en==NULL) রিটার্ন -1 অন্য রিটার্ন en->vEnd

মোছার জন্য:

বিগিন ডিক্লেয়ার ফাংশন রিমুভ(int k) int hash_v =HashFunc(k) if (ht[hash_v] !=NULL) ListHead *en =ht[hash_v]; লিস্টহেড *p=NULL; যখন (en->n !=NULL এবং en->k !=k) p =en en =en->n যদি (en->k==k) যদি (p ==NULL) ListHead *n=en->n মুছে ফেলুন en; ht[hash_v] =n অন্যথায় ListHead *n=en->n ডিলিট en p->n =nEnd।


উদাহরণ কোড

#include নেমস্পেস ব্যবহার করে std;const int T_S =20;class ListHead { public:int k, v; Listhead *n; ListHead(int k, int v) { this->k =k; this->v =v; this->n =NULL; }};ক্লাস হ্যাশম্যাপটেবল { ব্যক্তিগত:লিস্টহেড **এইচটি; সর্বজনীন:HashMapTable() { ht =নতুন ListHead*[T_S]; জন্য (int i =0; i n !=NULL) en =en->n; যদি (en->k ==k) en->v =v; অন্যথায় en->n=নতুন ListHead(k, v); } } int SearchKey(int k) { int hash_v =HashFunc(k); যদি (ht[hash_v] ==NULL) রিটার্ন -1; অন্য { ListHead *en =ht[হ্যাশ_ভি]; যখন (en !=NULL &&en->k !=k) en=en->n; if (en ==NULL) রিটার্ন -1; অন্যথায় ফিরুন en->v; } } void সরান(int k) { int hash_v =HashFunc(k); যদি (ht[hash_v] !=NULL) { ListHead *en =ht[hash_v]; লিস্টহেড *p =NULL; যখন (en->n !=NULL &&en->k !=k) { p =en; en =en->n; } if (en->k ==k) { if (p ==NULL) { ListHead *n=en->n; মুছে ফেলুন en; ht[হ্যাশ_ভি] =n; } অন্য { ListHead *n =en->n; মুছে ফেলুন en; p->n =n; } } } } ~ হ্যাশম্যাপটেবল() { ডিলিট[] ht; } }};int main() { HashMapTable হ্যাশ; int k, v; int c; while(1) { cout<<"1. টেবিলে উপাদান সন্নিবেশ করান"<>c; switch(c) { কেস 1:cout<<"এলিমেন্ট ঢোকাতে হবে:"; cin>>v; cout<<"কোন উপাদানে সন্নিবেশ করা হবে তা লিখুন:"; cin>>k; hash.Insert(k, v); বিরতি কেস 2:cout<<"অনুসন্ধান করা উপাদানটির কী লিখুন:"; cin>>k; if (hash.SearchKey(k) ==-1) cout<<"কী এ কোন উপাদান পাওয়া যায়নি "<>k; যদি (hash.SearchKey(k) ==-1) cout<<"কী"< 



আউটপুট

1.টেবিলে উপাদান ঢোকান2.কী থেকে উপাদান অনুসন্ধান করুন3.একটি কী-তে উপাদান মুছুন4.আপনার পছন্দের প্রস্থান করুন:1প্রবেশ করার উপাদানটি প্রবেশ করান:1কোন উপাদানে সন্নিবেশ করা হবে তা প্রবেশ করান:21.টেবিলে উপাদান ঢোকান2৷ কী থেকে উপাদান অনুসন্ধান করুন3.একটি কী-তে উপাদান মুছুন4.প্রস্থান করুন আপনার পছন্দের প্রবেশ করুন:1প্রবেশ করার জন্য উপাদানটি প্রবেশ করান:10কোন উপাদানে প্রবেশ করানো হবে তা প্রবেশ করান:11.টেবিলে উপাদান ঢোকান2.কী থেকে উপাদান অনুসন্ধান করুন3.একটি কী4 এ উপাদানটি মুছুন .প্রস্থান করুন আপনার পছন্দটি লিখুন:1 সন্নিবেশ করার উপাদানটি প্রবেশ করান:7 কোন উপাদানটিতে সন্নিবেশ করা হবে তা প্রবেশ করান:61.টেবিলে উপাদান সন্নিবেশ করান2.কী থেকে উপাদান অনুসন্ধান করুন3. একটি কী থেকে উপাদান মুছুন4.প্রস্থান করুন আপনার পছন্দটি প্রবেশ করুন:1প্রবেশ করার জন্য উপাদানটি প্রবেশ করান:12কোন উপাদানে ঢোকানো হবে তা লিখুন:41.টেবিলে উপাদান সন্নিবেশ করুন2.কী থেকে উপাদান অনুসন্ধান করুন3.একটি কী-তে উপাদান মুছুন4.প্রস্থান করুন আপনার পছন্দটি প্রবেশ করুন:30সঠিক বিকল্পটি প্রবেশ করান1.টেবিলে উপাদান সন্নিবেশ করুন2.কী থেকে উপাদান অনুসন্ধান করুন3.মুছুন একটি কী 4 এ উপাদান। আপনার পছন্দের প্রস্থান করুন:1 এন্টার উপাদান সন্নিবেশ করা হবে:30 কোন উপাদানে প্রবেশ করানো হবে:51. সারণীতে উপাদান সন্নিবেশ করান2. কী থেকে উপাদান অনুসন্ধান করুন3. একটি কী থেকে উপাদান মুছুন4. আপনার পছন্দের প্রস্থান করুন:2 অনুসন্ধান করা উপাদানটির কী প্রবেশ করান:6 কী-এ উপাদান 6 :71.টেবিলে উপাদান ঢোকান2.কী থেকে উপাদান অনুসন্ধান করুন3.একটি কী থেকে উপাদান মুছুন4.প্রস্থান করুন আপনার পছন্দটি প্রবেশ করুন:3মুছে ফেলার উপাদানটির কী প্রবেশ করান:1এন্ট্রি সরানো হয়েছে1.টেবিলে উপাদান সন্নিবেশ করুন2.কী থেকে উপাদান অনুসন্ধান করুন। একটি কী-এ উপাদান মুছুন4.প্রস্থান করুন আপনার পছন্দের এন্টার:2অনুসন্ধান করা উপাদানটির কী লিখুন:6কী 6 এ এলিমেন্ট :71.টেবিলে উপাদান ঢোকান2.কী থেকে উপাদান অনুসন্ধান করুন3.একটি কী থেকে উপাদান মুছুন4.প্রস্থান করুন আপনার পছন্দটি লিখুন:4 



  1. সংলগ্নতা তালিকা বাস্তবায়নের জন্য C++ প্রোগ্রাম

  2. দ্বিগুণ লিঙ্কযুক্ত তালিকা বাস্তবায়নের জন্য সি++ প্রোগ্রাম

  3. সার্কুলার সিঙ্গলি লিংকড লিস্ট বাস্তবায়নের জন্য C++ প্রোগ্রাম

  4. এককভাবে লিঙ্কযুক্ত তালিকা বাস্তবায়নের জন্য সি++ প্রোগ্রাম