Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

लिंक्ड सूचियों का उपयोग करके बाइनरी सर्च ट्री को लागू करने के लिए C++ प्रोग्राम

लिंक्ड सूचियों का उपयोग करके बाइनरी सर्च ट्री को लागू करने के लिए यहां एक सी ++ प्रोग्राम है।

कार्य और छद्म कोड

एल्गोरिदम

Begin
   Take the nodes of the tree as input.
   Create a structure nod to take the data d, a left pointer l and a right r as input.
   Create a function create() to insert nodes into the tree:
      Initialize c = 0 as number of nodes.
      Perform while loop till c < 6:
         Enter the root.
         Enter the value of the node, if it is greater than root then entered as right otherwise left.
   Create a function inorder() to traverse the node as inorder as:
      Left – Root – Right.
   Create a function preorder() to traverse the node as preorder as:
      Root – Left – Right.
   Create a function postorder() to traverse the node as preorder as:
      Left – Right – Root
   From main(), call the functions and print the result.
End

उदाहरण कोड

#include <iostream>
using namespace std;

struct nod {
   nod *l, *r;
   int d;
}*r = NULL, *p = NULL, *np = NULL, *q;

void create() {
   int v,c = 0;
   while (c < 6) {
      if (r == NULL) {
         r = new nod;
         cout<<"enter value of root node\n";
         cin>>r->d;
         r->r = NULL;
         r->l = NULL;
      } else {
         p = r;
         cout<<"enter value of node\n";
         cin>>v;
         while(true) {
            if (v< p->d) {
               if (p->l == NULL) {
                  p->l = new nod;
                  p = p->l;
                  p->d = v;
                  p->l = NULL;
                  p->r = NULL;
                  cout<<"value entered in left\n";
                  break;
               } else if (p->l != NULL) {
                  p = p->l;
               }
            } else if (v >p->d) {
               if (p->r == NULL) {
                  p->r = new nod;
                  p = p->r;
                  p->d = v;
                  p->l = NULL;
                  p->r = NULL;
                  cout<<"value entered in right\n";
                  break;
               } else if (p->r != NULL) {
                  p = p->r;
               }
            }
         }
      }
      c++;
   }
}

void inorder(nod *p) {
   if (p != NULL) {
      inorder(p->l);
      cout<<p->d<<endl;
      inorder(p->r);
   }
}

void preorder(nod *p) {
   if (p != NULL) {
      cout<<p->d<<endl;
      preorder(p->l);
      preorder(p->r);
   }
}

void postorder(nod *p) {
   if (p != NULL) {
      postorder(p->l);
      postorder(p->r);
      cout<<p->d<<endl;
   }
}

int main() {
   create();
   cout<<" traversal in inorder\n";
   inorder(r);
   cout<<" traversal in preorder\n";
   preorder(r);
   cout<<" traversal in postorder\n";
   postorder(r);
}

आउटपुट

enter value of root node
7
enter value of node
6
value entered in left
enter value of node
4
value entered in left
enter value of node
3
value entered in left
enter value of node
2
value entered in left
enter value of node
1
value entered in left
traversal in inorder
1
2
3
4
6
7
traversal in preorder
7
6
4
3
2
1
traversal in postorder
1
2
3
4
6
7

  1. C++ में बाइनरी सर्च ट्री पुनर्प्राप्त करें

    मान लीजिए कि हमारे पास एक बाइनरी सर्च ट्री है, अब इस बीएसटी के दो तत्वों की अदला-बदली पर विचार करें, इसलिए हमें इस बाइनरी सर्च ट्री को पुनर्प्राप्त करना होगा। तो अगर दिया गया पेड़ नीचे जैसा है (पहला वाला), तो बरामद पेड़ होगा (दूसरा वाला) - इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - नोड्

  1. C++ में बाइनरी ट्री टू बाइनरी सर्च ट्री रूपांतरण

    एक बाइनरी ट्री एक विशेष प्रकार का पेड़ है जिसमें पेड़ के प्रत्येक नोड में अधिकतम दो बच्चे नोड हो सकते हैं। इन चाइल्ड नोड्स को राइट चाइल्ड और लेफ्ट चाइल्ड के रूप में जाना जाता है। एक साधारण बाइनरी ट्री है - बाइनरी सर्च ट्री (BST) एक विशेष प्रकार का वृक्ष है जो निम्नलिखित नियमों का पालन करता है -

  1. सी ++ प्रोग्राम में बाइनरी सर्च?

    द्विआधारी खोज, जिसे अर्ध-अंतराल खोज, लॉगरिदमिक खोज या बाइनरी चॉप के रूप में भी जाना जाता है, एक खोज एल्गोरिथ्म है जो एक क्रमबद्ध सरणी के भीतर लक्ष्य मान की स्थिति का पता लगाता है। बाइनरी खोज लक्ष्य मान की तुलना सरणी के मध्य तत्व से करती है। यदि वे समान नहीं हैं, तो आधा जिसमें लक्ष्य झूठ नहीं बोल सकत