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

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

टर्नरी ट्री, एक ट्री डेटा संरचना है जिसमें प्रत्येक नोड में अधिकतम तीन चाइल्ड नोड्स होते हैं, जिन्हें आमतौर पर "बाएं", "मध्य" और "दाएं" के रूप में दर्शाया जाता है। इस पेड़ में, बच्चों के साथ नोड पैरेंट नोड होते हैं, और चाइल्ड नोड्स में उनके माता-पिता के संदर्भ हो सकते हैं। यह टर्नरी ट्री और ट्री के ट्रैवर्सल को लागू करने के लिए एक C++ प्रोग्राम है।

एल्गोरिदम

Begin
   Declare function insert(struct nod** root, char *w)
      if (!(*root)) then
         *root = newnod(*w);
         if ((*w) < (*root)->d) then
            insert(&( (*root)->l ), w);
         else if ((*w) > (*root)->d) then
            insert(&( (*root)->r ), w);
         else if (*(w+1))
            insert(&( (*root)->eq ), w+1);
      else
         (*root)->EndOfString = 1;
End.

पेड़ के ट्रैवर्सल के लिए:

Begin
   Declare function traverseTTtil(struct nod* root, char* buffer,
   int depth)
      if (root) then
         traverseTTtil(root->l, buffer, depth)
            buffer[depth] = root->d
            if (root->EndOfString) then
               buffer[depth+1] = '\0'
               print the value of buffer.
            traverseTTtil(root->eq, buffer, depth + 1);
            traverseTTtil(root->r, buffer, depth);
End.

उदाहरण

#include<stdlib.h>
#include<iostream>
using namespace std;
struct nod {
   char d;
   unsigned End.
   fString: 1;
   struct nod *l, *eq, *r;
}*t = NULL;
struct nod* newnod(char d) {
   t = new nod;
   t->d = d;
   t->End.
   fString = 0;
   t->l = t->eq = t->r = NULL;
   return t;
}
void insert(struct nod** root, char *w) {
   if (!(*root))
      *root = newnod(*w);
   if ((*w) < (*root)->d)
      insert(&( (*root)->l ), w);
   else if ((*w) > (*root)->d)
      insert(&( (*root)->r ), w);
   else {
      if (*(w+1))
         insert(&( (*root)->eq ), w+1);
      else
         (*root)->End.
      fString = 1;
   }
}
void traverseTTtil(struct nod* root, char* buffer, int depth) {
   if (root) {
      traverseTTtil(root->l, buffer, depth);
      buffer[depth] = root->d;
      if (root->End. String) {
         buffer[depth+1] = '\0';
         cout<<buffer<<endl;
      }
      traverseTTtil(root->eq, buffer, depth + 1);
      traverseTTtil(root->r, buffer, depth);
   }
}
void traverseTT(struct nod* root) {
   char buffer[50];
   traverseTTtil(root, buffer, 0);
}
int main() {
   struct nod *root = NULL;
   insert(&root, "mat");
   insert(&root, "bat");
   insert(&root, "hat");
   insert(&root, "rat");
   cout<<"Following is traversal of ternary tree\n";
   traverseTT(root);
}

आउटपुट

Following is traversal of ternary tree
bat
hat
mat
rat

  1. सी ++ प्रोग्राम सीजर साइफर को लागू करने के लिए

    यह एक मोनो-अल्फाबेटिक सिफर है जिसमें प्लेनटेक्स्ट के प्रत्येक अक्षर को सिफरटेक्स्ट बनाने के लिए दूसरे अक्षर द्वारा प्रतिस्थापित किया जाता है। यह प्रतिस्थापन सिफर योजना का सबसे सरल रूप है। इस क्रिप्टोसिस्टम को आमतौर पर शिफ्ट सिफर के रूप में जाना जाता है। अवधारणा प्रत्येक वर्णमाला को दूसरे वर्णमाला स

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

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

  1. न्यूनतम ढेर को लागू करने के लिए C++ कार्यक्रम

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