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

C++ में बाइनरी सर्च ट्री में न्यूनतम मान वाला नोड ज्ञात करें


मान लीजिए हमारे पास एक बाइनरी सर्च ट्री है। हमें बाइनरी सर्च ट्री में न्यूनतम तत्व ढूंढना है। इसलिए यदि BST नीचे की तरह है:

C++ में बाइनरी सर्च ट्री में न्यूनतम मान वाला नोड ज्ञात करें

न्यूनतम तत्व 1 होगा।

जैसा कि हम जानते हैं कि बायां उपट्री हमेशा छोटे तत्वों को धारण करता है। इसलिए यदि हम बाएं उपट्री के माध्यम से तब तक ट्रैवर्स करते हैं जब तक बायां NULL नहीं हो जाता, तो हम सबसे छोटा तत्व ढूंढ सकते हैं।

उदाहरण

#include<iostream> using namespace std; class node{ public: node *left; int val; node *right; }; node *bst = NULL; node *getNode(){ node *newNode; newNode = new node; return newNode; } void insert(node **root, int key){ node *newNode; newNode = getNode(); newNode->val = key; newNode->left = NULL; newNode->right = NULL; if(*root == NULL){ *root = newNode; return; } else { if(key < (*root)->val) insert(&((*root)->left), key); else insert(&((*root)->right), key); } } int minElement(){ node* current = bst; while (current->left != NULL) { current = current->left; } return(current->val); } main(){ int item[] = {3, 2, 1, 6, 5, 8}; int n = sizeof(item)/sizeof(item[0]); int i; for(i = 0; i<8; i++){ insert(&bst, item[i]); } cout << "Minimum element is: " << minElement(); }

आउटपुट

Minimum element is: 1

  1. C++ में बाइनरी ट्री में निकटतम लीफ ढूंढें C++ में बाइनरी ट्री में निकटतम लीफ ढूंढें

    मान लीजिए, एक बाइनरी ट्री दिया गया है। इसमें अलग-अलग लेवल पर लीफ नोड्स हैं। एक और पॉइंटर दिया गया है, जो एक नोड को इंगित कर रहा है। हमें इंगित नोड से निकटतम लीफ नोड की दूरी ढूंढनी है। ट्री को नीचे जैसा मानें - यहां लीफ नोड्स 2, -2 और 6 हैं। यदि पॉइंटर नोड -5 पर इंगित कर रहा है, तो -5 से निकटतम नोड

  1. बाइनरी ट्री के वर्टिकल ऑर्डर ट्रैवर्सल में kवां नोड खोजें C++ में बाइनरी ट्री के वर्टिकल ऑर्डर ट्रैवर्सल में kवां नोड खोजें C++ में

    मान लीजिए हमारे पास एक बाइनरी ट्री और एक मान K है। कार्य वर्टिकल ऑर्डर ट्रैवर्सल में Kवें नोड को प्रिंट करना है। यदि ऐसा कोई नोड मौजूद नहीं है, तो -1 वापस करें। तो यदि ट्री नीचे जैसा है - वर्टिकल ऑर्डर ट्रैवर्सल इस तरह है - 4 2 1 5 6 3 8 7 9 तो यदि K = 3, तो परिणाम 1 होगा। दृष्टिकोण सरल है। हम वर्ट

  1. C++ में उस नोड को ढूंढें जिसका X के साथ निरपेक्ष अंतर न्यूनतम मान देता है C++ में उस नोड को ढूंढें जिसका X के साथ निरपेक्ष अंतर न्यूनतम मान देता है

    मान लीजिए हमारे पास एक ट्री है, और सभी नोड्स के वजन और एक पूर्णांक x है। हमें नोड i ढूंढना है, जैसे कि |weight[i] - x| न्यूनतम हो। यदि ग्राफ नीचे की तरह है, और x = 15 आउटपुट 3 होगा। अब विभिन्न नोड्स के लिए, यह नीचे की तरह होगा: नोड 1, |5 – 15| = 10 नोड 2, |10 – 15| = 5 नोड 3, |11 – 15| = 4 नोड 4, |