কম্পিউটার

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


লিঙ্ক করা তালিকা ব্যবহার করে একটি বাইনারি অনুসন্ধান ট্রি বাস্তবায়নের জন্য এখানে একটি C++ প্রোগ্রাম রয়েছে।

ফাংশন এবং pseucodes

অ্যালগরিদম

শুরু করুন ইনপুট হিসাবে গাছের নোডগুলি নিন। ইনপুট হিসাবে ডেটা d, একটি বাম পয়েন্টার l এবং একটি ডান r নেওয়ার জন্য একটি কাঠামো নড তৈরি করুন। ট্রিতে নোড সন্নিবেশ করার জন্য create() একটি ফাংশন তৈরি করুন:নোডের সংখ্যা হিসাবে c =0 শুরু করুন। সি <6 পর্যন্ত লুপ করার সময় সম্পাদন করুন:রুট লিখুন। নোডের মান লিখুন, যদি এটি রুটের চেয়ে বড় হয় তবে ডান বা বামে প্রবেশ করান। একটি ফাংশন inorder() তৈরি করুন যাতে নোডকে ক্রমানুসারে অতিক্রম করতে হয়:বাম – রুট – ডান। একটি ফাংশন preorder() তৈরি করুন প্রিঅর্ডার হিসাবে নোড অতিক্রম করতে:রুট - বাম - ডান। একটি ফাংশন পোস্টঅর্ডার() তৈরি করুন প্রি-অর্ডার হিসাবে নোডটি অতিক্রম করার জন্য:বাম – ডান – মূল থেকে রুট (), ফাংশনগুলিকে কল করুন এবং ফলাফল প্রিন্ট করুন৷ শেষ

উদাহরণ কোড

#include  namespace ব্যবহার করে std;struct nod { nod *l, *r; int d;}*r =NULL, *p =NULL, *np =NULL, *q;void create() { int v,c =0; যখন (c <6) { if (r ==NULL) { r =new nod; cout<<"রুট নোডের মান লিখুন\n"; cin>>r->d; r->r =NULL; r->l =NULL; } অন্য { p =r; cout<<"নোডের মান লিখুন\n"; cin>>v; while(true) { if (vd) { if (p->l ==NULL) { p->l =new nod; p =p->l; p->d =v; p->l =NULL; p->r =NULL; cout<<"মান বামে প্রবেশ করানো হয়েছে\n"; বিরতি } অন্যথায় যদি (p->l !=NULL) { p =p->l; } } অন্য যদি (v>p->d) { if (p->r ==NULL) { p->r =new nod; p =p->r; p->d =v; p->l =NULL; p->r =NULL; cout<<"মান ডানে প্রবেশ করানো হয়েছে\n"; বিরতি } অন্যথায় যদি (p->r !=NULL) { p =p->r; } } } } c++; }} void inorder(nod *p) { if (p !=NULL) { inorder(p->l); cout<d<r); }} void preorder(nod *p) { if (p !=NULL) { cout<d<l); প্রি-অর্ডার(p->r); }} void postorder(nod *p) { if (p !=NULL) { postorder(p->l); পোস্টঅর্ডার(p->r); cout<d< 

আউটপুট

node4value-এর লেফটেন্টার মানের মধ্যে প্রবেশ করানো node4value-এর লেফটেন্টার মানের মধ্যে প্রবেশ করানো node3value-এর লেফটেন্টার মানের মধ্যে প্রবেশ করানো node2value-এর লেফটেন্টার মানের মধ্যে প্রবেশ করানো node1value-এর লেফটেন্টার মান inorder123467প্রি-অর্ডার 123467 ট্রাভার্সাল inorder123467 ট্রাভার্সাল inorder123467> 
  1. বাইনারি সার্চ ট্রিকে সি++ এ এককভাবে লিঙ্ক করা তালিকায় রূপান্তর করার প্রোগ্রাম?

  2. C++ এ বাইনারি সার্চ ট্রি পুনরুদ্ধার করুন

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

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