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