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

C++ में बाइनरी ट्री में दिए गए नोड के पूर्वज प्रिंट करें


इस समस्या में, हमें एक बाइनरी ट्री दिया गया है और हमें बाइनरी ट्री में एक नोड के पूर्वजों को प्रिंट करना है।

बाइनरी ट्री एक विशेष ट्री है जिसका प्रत्येक नोड अधिकतम दो चाइल्ड नोड रख सकता है। तो, प्रत्येक नोड या तो एक लीफ नोड होता है या उसके एक या दो चाइल्ड नोड होते हैं।

उदाहरण,

C++ में बाइनरी ट्री में दिए गए नोड के पूर्वज प्रिंट करें

बाइनरी ट्री में एक नोड का पूर्वज एक नोड है जो दिए गए नोड के ऊपरी स्तर पर है।

आइए पूर्वज नोड का एक उदाहरण लें -

C++ में बाइनरी ट्री में दिए गए नोड के पूर्वज प्रिंट करें

इस बाइनरी ट्री में मान 3 वाले नोड के पूर्वज 8 हैं,

इस समस्या को हल करने के लिए, हम रूट नोड से टारगेट नोड तक ट्रैवर्स करेंगे। बाइनरी ट्री में चरण दर चरण नीचे की ओर। और पथ में आने वाले सभी नोड्स को प्रिंट करेंगे।

उदाहरण

#include<iostream> #include<stdio.h> #include<stdlib.h> using namespace std; struct node{     int data;     struct node* left;     struct node* right; }; bool AncestorsNodes(struct node *root, int target){     if (root == NULL)         return false;     if (root->data == target)         return true;     if ( AncestorsNodes(root->left, target) || AncestorsNodes(root->right, target) ){         cout << root->data << " ";         return true;     }     return false; } struct node* insertNode(int data){     struct node* node = (struct node*) malloc(sizeof(struct node));     node->data = data;     node->left = NULL;     node->right = NULL;     return(node); } int main(){     struct node *root = insertNode(10);     root->left = insertNode(6);     root->right = insertNode(13);     root->left->left = insertNode(3);     root->left->right = insertNode(8);     root->right->left = insertNode(12);     cout<<"Ancestor Nodes are " ;     AncestorsNodes(root, 8);     getchar();     return 0; }

आउटपुट

Ancestor Nodes are 6 10

  1. C++ में बाइनरी ट्री में सभी K-सम पाथ प्रिंट करना C++ में बाइनरी ट्री में सभी K-सम पाथ प्रिंट करना

    इस समस्या में, हमें एक बाइनरी ट्री और एक संख्या K दी गई है और हमें ट्री में उन सभी पाथ को प्रिंट करना है जिनमें पाथ के नोड्स का योग K के बराबर हो। यहां, ट्री का पाथ ट्री के किसी भी नोड से शुरू हो सकता है और किसी भी नोड पर समाप्त हो सकता है। पाथ हमेशा रूट नोड से लीफ नोड की ओर होना चाहिए। ट्री के नो

  1. बाइनरी ट्री में रूट से दिए गए नोड तक की दूरी खोजें C++ में बाइनरी ट्री में रूट से दिए गए नोड तक की दूरी खोजें C++ में

    मान लीजिए हमारे पास कुछ नोड्स के साथ एक बाइनरी ट्री है। हमें रूट और दूसरे नोड u के बीच की दूरी खोजनी है। मान लीजिए ट्री नीचे जैसा है: अब (रूट, 6) के बीच की दूरी = 2, पथ की लंबाई 2 है, (रूट, 8) के बीच की दूरी = 3 आदि। इस समस्या को हल करने के लिए, हम नोड को बाएं और दाएं सबट्री में खोजने के लिए एक पुन

  1. C++ में जांचें कि दिया गया बाइनरी ट्री सम-ट्री है या नहीं C++ में जांचें कि दिया गया बाइनरी ट्री सम-ट्री है या नहीं

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