কম্পিউটার

স্ব-সংগঠিত তালিকা ব্যবহার করে অনুসন্ধান সম্পাদনের জন্য C++ প্রোগ্রাম


স্ব-সংগঠিত তালিকা মূলত সর্বশেষ অনুসন্ধান করা আইটেমের ভিত্তিতে আইটেমের প্রদত্ত পরিসরের তালিকা আপডেট করে। এই পদ্ধতিতে, অনুক্রমিক অনুসন্ধান পদ্ধতি ব্যবহার করা হয়। এই অ্যালগরিদম তালিকার শুরুতে আরও গুরুত্বপূর্ণ ডেটা স্থানান্তর করে। এই অনুসন্ধান কৌশলের সময় জটিলতা হল O(n).

অ্যালগরিদম

 শুরু ফাংশন FibonacciSearch()। 'start+fib[index-2]' এক্সপ্রেশন ব্যবহার করে মধ্য মান গণনা করুন। যদি নির্বাচিত আইটেমটি মধ্য সূচকের মানের সমান হয়, ফলাফল মুদ্রণ করুন এবং মূলে ফিরে যান। যদি এটি মধ্য সূচকে মানের থেকে কম হয়, বাম সাব-অ্যারে দিয়ে এগিয়ে যান। যদি এটি মধ্য সূচকে মানের থেকে বেশি হয়, তাহলে ডান সাব-অ্যারে নিয়ে এগিয়ে যান। যদি গণনা করা মধ্য মানটি শুরু বা শেষের সমান হয় তবে আইটেমটি অ্যারেতে পাওয়া যায় না৷ শেষ

উদাহরণ কোড

#include namespace ব্যবহার করে std;struct node { int d; node *next;};node* CreateNode(int d) { node *newnode =new node; নিউনোড->d =d; newnode->next =NULL; রিটার্ন newnode;}node* InsertIntoList(node ​​*head, int d) { node *temp =CreateNode(d); node *t =নতুন নোড; t =মাথা; if(head ==NULL) { head =temp; মাথা ফেরত; } else { while(t->পরবর্তী!=NULL) t =t->পরবর্তী; t->পরবর্তী =তাপমাত্রা; } রিটার্ন হেড;} void ডিসপ্লে(নোড *হেড) { নোড *টেম্প =নতুন নোড; temp =মাথা; cout<<"\n তালিকার অবস্থা হল :"; while(temp->পরবর্তী !=NULL) { cout<<"->"<d; temp =temp->পরবর্তী; }}নোড* সার্চ আইটেম (নোড *হেড, int আইটেম) { int ফ্ল্যাগ =0; node *temp =নতুন নোড; node *t =নতুন নোড; temp =মাথা; if(temp->d ==আইটেম) { cout<<"\nআইটেম হেড নোডে পাওয়া গেছে"; পতাকা =5; প্রদর্শন (মাথা); মাথা ফেরত; } else { while((temp->next)->next !=NULL) { if((temp->next)->d ==item) { cout<<"\nআইটেম পাওয়া গেছে"; পতাকা =5; বিরতি } temp =temp->পরবর্তী; } t =(temp->পরবর্তী)->পরবর্তী; (temp->পরবর্তী)->পরবর্তী =মাথা; head =temp->পরবর্তী; temp->পরবর্তী =t; if(পতাকা ==5) ডিসপ্লে(হেড); else cout<<"\nআইটেম পাওয়া যায়নি।"; } রিটার্ন হেড;} int main() { int i, n; char ch; node *head =নতুন নোড; head =NULL; for(i =1; i <20; i++) head =InsertIntoList(head, i); প্রদর্শন (মাথা); up:cout<<"\nঅনুসন্ধান করা উপাদানটি লিখুন:"; cin>>n; head =SearchItem(head, n); cout<<"\n\n\tআপনি কি আরও অনুসন্ধান করতে চান...চয়েস লিখুন(y/n)?"; cin>>ch; if(ch =='y' || ch =='Y') উপরে যান; রিটার্ন 0;

আউটপুট

তালিকার অবস্থা হল :->1->2->3->4->5->6->7->8->9->10->11->12->13->14 ->15->16->17->18 অনুসন্ধান করা উপাদানটি প্রবেশ করান:7 আইটেম পাওয়া গেছে তালিকার অবস্থা হল :->7->1->2->3->4->5->6->8-> 9->10->11->12->13->14->15->16->17->18আপনি কি আরও অনুসন্ধান করতে চান...চয়েস (y/n) লিখুন? অনুসন্ধান করার জন্য উপাদানটি প্রবেশ করান :20আইটেম পাওয়া যায়নি
  1. কিভাবে C++ প্রোগ্রাম ব্যবহার করে একটি প্রোগ্রাম চালু করবেন?

  2. অ্যারে ব্যবহার করে স্ট্যাক বাস্তবায়নের জন্য C++ প্রোগ্রাম

  3. ম্যাট্রিক্স গুণন সম্পাদনের জন্য C++ প্রোগ্রাম

  4. রিকারশন ব্যবহার করে G.C.D খুঁজে পেতে C++ প্রোগ্রাম