কম্পিউটার

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


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

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

অ্যালগরিদম

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

 শুরু করুন ফাংশন সন্নিবেশ (int k, int v) int hash_v =HashFunc(k) HashTableEntry* p =NULL HashTableEntry* en =ht[hash_v] যখন (en!=NULL) p =en=en->n if (en ==NULL) en =new HashTableEntry(k, v) if (p ==NULL) ht[hash_v] =en else p->n=en else en->v =vEnd.

মোছার জন্য:

বিগিন ডিক্লেয়ার ফাংশন রিমুভ(int k) int hash_v =HashFunc(k) HashTableEntry* en =ht[hash_v] HashTableEntry* p=NULL যদি (en ==NULL বা en->k !=k) প্রিন্ট “কোন উপাদান নেই কী এ পাওয়া যায় /প্রে> 

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

সূচনা করুন ফাংশন ঘোষণা করুন SearchKey(int k) int hash_v =HashFunc(k) bool flag =false HashTableEntry* en =ht[hash_v] if (en !=NULL) যখন (en !=NULL) যদি (en->k) ==কে) পতাকা =সত্য যদি (পতাকা) প্রিন্ট "কী এ উপাদান পাওয়া যায়" প্রিন্ট en->v en =en->n যদি (!পতাকা) প্রিন্ট "কী এ কোন উপাদান পাওয়া যায়নি"শেষে।

উদাহরণ কোড

#include const int T_S =200; namespace ব্যবহার করে std;struct HashTableEntry { int v, k; HashTableEntry *n; HashTableEntry *p; HashTableEntry(int k, int v) { this->k =k; this->v =v; this->n =NULL; }};ক্লাস HashMapTable { সর্বজনীন:HashTableEntry **ht, **top; HashMapTable() { ht =নতুন HashTableEntry*[T_S]; জন্য (int i =0; i n; } যদি (en ==NULL) { en =new HashTableEntry(k, v); যদি (p ==NULL) { ht[hash_v] =en; } অন্য { p->n =en; } } অন্য { en->v =v; } } void সরান(int k) { int hash_v =HashFunc(k); HashTableEntry* en =ht[hash_v]; HashTableEntry* p =NULL; if (en ==NULL || en->k !=k) { cout<<"কীতে কোনো উপাদান পাওয়া যায়নি "<n !=NULL) { p =en; en =en->n; } যদি (p !=NULL) { p->n =en->n; } মুছে ফেলুন en; cout<<"এলিমেন্ট মুছে ফেলা হয়েছে"<k ==k) { পতাকা =সত্য; } যদি (পতাকা) { cout<<"কীতে উপাদান পাওয়া যায় "<v< n; } } যদি (!ফ্ল্যাগ) cout<<"কীতে কোন উপাদান পাওয়া যায় নি "<>c; switch(c) { কেস 1:cout<<"এলিমেন্ট ঢোকাতে হবে:"; cin>>v; cout<<"কোন উপাদানে সন্নিবেশ করা হবে তা লিখুন:"; cin>>k; hash.Insert(k, v); বিরতি কেস 2:cout<<"অনুসন্ধান করা উপাদানটির কী লিখুন:"; cin>>k; hash.SearchKey(k); বিরতি কেস 3:cout<<"মুছে ফেলার উপাদানটির কী লিখুন:"; cin>>k; hash.Remove(k); বিরতি কেস 4:প্রস্থান (1); ডিফল্ট:cout<<"\nসঠিক বিকল্প লিখুন\n"; } } রিটার্ন 0; }

আউটপুট

<প্রে>1.টেবিলে উপাদান ঢোকান2.কী থেকে উপাদান অনুসন্ধান করুন3.একটি কী থেকে উপাদান মুছুন4.আপনার পছন্দের প্রস্থান করুন:1প্রবেশ করার জন্য উপাদানটি প্রবেশ করান:2কোন উপাদানটিতে সন্নিবেশ করা হবে তা প্রবেশ করান:11.টেবিলে উপাদান ঢোকান2৷ কী থেকে উপাদান অনুসন্ধান করুন3.একটি কী-এ উপাদান মুছুন4.প্রস্থান করুন আপনার পছন্দের প্রবেশ করুন:1প্রবেশ করার জন্য উপাদানটি প্রবেশ করান:3কোন উপাদানটিতে কী প্রবেশ করানো হবে:41.টেবিলে উপাদান সন্নিবেশ করান2.কী থেকে উপাদান অনুসন্ধান করুন3.একটি কী থেকে উপাদান মুছুন4 .প্রস্থান করুন আপনার পছন্দটি লিখুন:1 সন্নিবেশ করার উপাদানটি প্রবেশ করান:7 কোন উপাদানটিতে সন্নিবেশ করা হবে তা প্রবেশ করান:61.টেবিলে উপাদান সন্নিবেশ করান2.কী থেকে উপাদান অনুসন্ধান করুন3. একটি কী থেকে উপাদান মুছুন4.প্রস্থান করুন আপনার পছন্দটি প্রবেশ করুন:1প্রবেশ করার জন্য উপাদানটি প্রবেশ করান:8কোন উপাদানে কী ঢোকানো হবে তা লিখুন:91.টেবিলে উপাদান ঢোকান2.কী থেকে উপাদান অনুসন্ধান করুন3.একটি কী-তে উপাদান মুছুন4.প্রস্থান করুন আপনার পছন্দটি প্রবেশ করুন:2অনুসন্ধান করা উপাদানটির কী প্রবেশ করান:6কী 6:71 এ উপাদানটি পাওয়া গেছে। সারণীতে উপাদান ঢোকান 2. কী থেকে উপাদান অনুসন্ধান করুন3. উপাদান মুছুন৷ ent একটি কী এ 4. প্রস্থান করুন আপনার পছন্দটি প্রবেশ করুন:2 অনুসন্ধান করার জন্য উপাদানটির কী প্রবেশ করান:7 কীটিতে কোনো উপাদান পাওয়া যায়নি 71. টেবিলে উপাদান ঢোকান2. কী থেকে উপাদান খুঁজুন3. একটি কী থেকে উপাদান মুছুন4. প্রস্থান করুন আপনার পছন্দটি প্রবেশ করুন:3টির কী প্রবেশ করুন যে উপাদানটি মুছে ফেলতে হবে:9এলিমেন্ট মুছে ফেলা হয়েছে1.টেবিলে উপাদান ঢোকান2.কী থেকে উপাদান খুঁজুন3.একটি কী-এ উপাদান মুছুন4.প্রস্থান করুন আপনার পছন্দটি লিখুন:4

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

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

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

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