এটি একটি C++ প্রোগ্রাম বাইনারি অনুসন্ধান পদ্ধতি ব্যবহার করে একটি প্রদত্ত সংখ্যার সংঘটনের সংখ্যা খুঁজে বের করার জন্য।
অ্যালগরিদম
ট্রিতে নোড সন্নিবেশ করতে Insert() ফাংশন শুরু করুন:আর্গুমেন্ট:রুট, ডি। ফাংশনের মূল অংশ:আর্গুমেন্ট তালিকা থেকে ডেটা ব্যবহার করে নোড তৈরি করুন। যদি গাছটি সম্পূর্ণ খালি থাকে, তাহলে রুট হিসাবে নতুন নোড ঢোকান। d =tmp->ডেটা হলে, সেই নির্দিষ্ট নোডের সংখ্যা বাড়ান। dডেটা হলে, tmp পয়েন্টারটি বাম চাইল্ডে নিয়ে যান। যদি d> tmp-> ডেটা, tmp পয়েন্টারটিকে ডান চাইল্ডে নিয়ে যান। EndBegin ফাংশন SearchNode() ট্রিতে আইটেম অনুসন্ধান করতে:আর্গুমেন্ট:রুট, ডি। ফাংশনের মূল অংশ:একটি NULL পয়েন্টার বা ডেটা আইটেম পাওয়া না যাওয়া পর্যন্ত লুপ চালান। d ডেটা হলে, tmp পয়েন্টারটি বাম চাইল্ডে নিয়ে যান। যদি d> tmp-> ডেটা হয়, tmp পয়েন্টারটি ডান চাইল্ডে নিয়ে যান। যদি d =tmp-> ডেটা, পাওয়া আইটেমটি প্রিন্ট করুন এবং এটি গণনা হয় এবং তারপরে মূলে ফিরে যান। অন্যথায় প্রিন্ট ডেটা পাওয়া যায়নি। শেষ
উদাহরণ
#includeNamespace std;struct nod //node এর declaration{int data ব্যবহার করে; int cnt; নড *l; nod *r;};nod* CreateNod(int d) //নতুন নোডের সৃষ্টি{ nod *newnod =new nod; নিউনোড->ডেটা =ডি; newnod->cnt =1; newnod->l=NULL; newnod->r =NULL; রিটার্ন newnod;}nod* Insert(nod* root, int d) //perform insertion{ nod *tmp =CreateNod(d); nod *t =নতুন নড; t =root; if(root ==NULL) root =tmp; else { while(t !=NULL) { if(t->data ==d) { t->cnt++; বিরতি } else if(t->ডেটা r==NULL) { t->r=tmp; বিরতি } t =t->r; } else if(t->ডেটা> d) { if(t->l==NULL) { t->l=tmp; বিরতি } t =t->l; } } }রিটার্ন রুট;} void SearchNode(nod *root, int d) // সার্চিং সম্পাদন করুন{ nod *tmp =new nod; tmp =root; while(tmp !=NULL) { if(tmp->data ==d) { cout<<"\nডেটা আইটেম "< cnt<<" বার সংখ্যা।"; প্রত্যাবর্তন } else if(tmp->ডেটা> d) tmp =tmp->l; else tmp =tmp->r; } cout<<"\n ডেটা পাওয়া যায়নি"; return;}int main() { char c; int n, i, a[20] ={8,1,3,6,4,7,10,14,13,7,6,1,26,4,26,20,21,12,10,1 }; // অ্যারের নোডের উপাদানগুলি নিন *root =new nod; root =NULL; for(i =0; i <20; i++) root =Insert(root, a[i]); up:cout<<"\nঅনুসন্ধান করা উপাদানটি লিখুন:"; cin>>n; SearchNode(root, n); cout<<"\n\nআরো অনুসন্ধান করতে চান...পছন্দ লিখুন(y/n)?"; cin>>c; if(c =='Y' || c =='y') উপরে উঠুন; রিটার্ন 0;