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

कार्टेशियन ट्री को लागू करने के लिए C++ प्रोग्राम

यहाँ कार्टेशियन ट्री को लागू करने के लिए C++ प्रोग्राम दिया गया है।

एल्गोरिदम

Begin
   class CarTree to declare the functions:
      min() = To find index of the minimum element in array:
   if (arr[i] < min)
      min = arr[i]
      minind = i
      inorder() = For inorder traversal of the tree:
   If tree is empty
      Then return
      inorder (node->l)
      Print the root as node->d
      inorder (node->r)
End
के रूप में प्रिंट करें

उदाहरण कोड

#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;

struct nod//node declaration {
   int d;
   struct nod* l;
   struct nod* r;
};

class CarTree {
   public://declare the functions
   nod *newNode (int);
   int min(int [], int, int);
   nod *buildTree (int [], int, int);
   void inorder (nod* node);
   void show(nod *, int);
   CTree()
   {}
};

int CarTree::min(int arr[], int s, int e) {
   int i, min = arr[s], minind = s;
   for (i = s + 1; i <= e; i++) {
      if (arr[i] < min) {
         min = arr[i];
         minind = i;
      }
   }
   return minind;
}

nod *CarTree::buildTree (int inorder[], int s, int e)//build the cratesian tree {
   if (s >e)
      return NULL;
      int i = min(inorder, s, e);
      nod *r = newNode(inorder[i]);
   if (s == e)
      return r;
      r->l = buildTree(inorder, s, i - 1);//call the function recursively for left child
      r->r = buildTree(inorder, i + 1, e);//call the function recursively for right child
      return r;
}

void CarTree::inorder (struct nod* node) {
   if (node == NULL)
      return;
      inorder (node->l);
      cout<<node->d<<" ";
      inorder (node->r);
}

void CarTree::show(nod *ptr, int level)//show the tree {
   int i;
   if(ptr == NULL)
      return;
   if (ptr != NULL) {
      show(ptr->r, level + 1);
      cout<<endl;
      for (i = 0;i < level;i++)
         cout<<" ";
         cout<<ptr->d;
         show(ptr->l, level + 1);
   }
}

nod *CarTree::newNode (int d)//creation of new node {
   nod* t = new nod;
   t->d = d;
   t->l = NULL;
   t->r = NULL;
   return t;
}

int main() {
   CarTree ct;
   int i, n;
   cout<<"Enter number of elements to be inserted: ";
   cin>>n;
   int a[n];
   for (i = 0; i < n; i++) {
      cout<<"Enter Element "<<i + 1<<" : ";
      cin>>a[i];
   }
   nod *r = ct.buildTree(a, 0, n - 1);
   cout<<"Cartesian tree Structure: "<<endl;
   ct.show(r,1);
   cout<<endl;
   cout<<"\n Inorder traversal of the tree \n"<<endl;
   ct.inorder(r);
   cout<<endl;
   return 0;
}

आउटपुट

Enter number of elements to be inserted: 10
Enter Element 1 : 10
Enter Element 2 : 30
Enter Element 3 : 20
Enter Element 4 : 40
Enter Element 5 : 50
Enter Element 6 : 70
Enter Element 7 : 60
Enter Element 8 : 80
Enter Element 9 : 100
Enter Element 10 : 112
Cartesian tree Structure:
112
100
80
60
70
50
40
20
30
10
Inorder traversal of the tree
10 30 20 40 50 70 60 80 100 112

  1. AVL ट्री को लागू करने के लिए C++ प्रोग्राम

    AVL ट्री एक सेल्फ-बैलेंसिंग बाइनरी सर्च ट्री है जहां सभी नोड्स के लिए बाएं और दाएं सबट्री की ऊंचाई के बीच का अंतर एक से अधिक नहीं हो सकता है। ट्री रोटेशन एक ऐसा ऑपरेशन है जो AVL ट्री पर तत्वों के क्रम में हस्तक्षेप किए बिना संरचना को बदलता है। यह पेड़ में एक नोड को ऊपर और एक नोड को नीचे ले जाता है।

  1. बबल सॉर्ट को लागू करने के लिए C++ प्रोग्राम

    बबल सॉर्ट तुलना आधारित सॉर्टिंग एल्गोरिदम है। इस एल्गोरिथम में आसन्न तत्वों की तुलना की जाती है और सही क्रम बनाने के लिए उनकी अदला-बदली की जाती है। यह एल्गोरिथम अन्य एल्गोरिदम की तुलना में सरल है, लेकिन इसमें कुछ कमियां भी हैं। यह एल्गोरिथ्म बड़ी संख्या में डेटा सेट के लिए उपयुक्त नहीं है। छँटाई कार

  1. रेडिक्स सॉर्ट को लागू करने के लिए C++ प्रोग्राम

    मूलांक छँटाई गैर-तुलनात्मक छँटाई एल्गोरिथ्म है। यह सॉर्टिंग एल्गोरिदम समान स्थिति और मान साझा करने वाले अंकों को समूहीकृत करके पूर्णांक कुंजियों पर काम करता है। मूलांक एक संख्या प्रणाली का आधार है। जैसा कि हम जानते हैं कि दशमलव प्रणाली में मूलांक या आधार 10 होता है। इसलिए कुछ दशमलव संख्याओं को छांटन