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

बाइनरी सर्च दृष्टिकोण का उपयोग करके सरणी में न्यूनतम एलिमेंट खोजने के लिए C++ प्रोग्राम


यह बाइनरी सर्च दृष्टिकोण का उपयोग करके सरणी के न्यूनतम एलिमेंट को खोजने के लिए एक C++ प्रोग्राम है। इस प्रोग्राम की समय जटिलता O(log n) है।

एल्गोरिदम

शुरुआत दिए गए अनसॉर्टेड डेटा सरणी के लिए बाइनरी सर्च ट्री बनाएं। न्यूनतम एलिमेंट खोजने के लिए पॉइंटर को बाएं सबसे चाइल्ड नोड पर ले जाएं। इस मान को दिए गए डेटा में न्यूनतम मान के रूप में प्रिंट करें। अंत

उदाहरण कोड

#include<iostream> using namespace std; struct node {    int d;    node *left;    node *right; }; node* CreateNode(int d) {    node *newnode = new node;    newnode->d = d;    newnode->left = NULL;    newnode->right = NULL;    return newnode; } node* InsertIntoTree(node* root, int d) {    node *temp = CreateNode(d);    node *t = new node;    t = root;    if(root == NULL)       root = temp;    else{       while(t != NULL) {          if(t->d < d) {             if(t->right == NULL) {                // यदि वर्तमान नोड NULL है तो नोड डालें।                t->right = temp;                break;             }             // पॉइंटर को दाएं शिफ्ट करें।             t = t->right;          }          else if(t->d > d) {             if(t->left == NULL) {                t->left = temp;                break;             }             t = t->left;          }       }    }    return root; } int main() {    int n, i, a[10]={86, 63, 95, 6, 7, 67, 52, 26, 45, 98};    node *root = new node;    root = NULL;    cout<<"\nडेटा सेट:\n";    for(i = 0; i < 10; i++) {       cout<<a[i]<<" ";       root = InsertIntoTree(root, a[i]);    }    cout<<"\n\nदिए गए डेटा सेट का न्यूनतम एलिमेंट है ";    i = 0;    while(root->left != NULL) {       i++;       root = root->left;    } cout<<root->d<<" जो रूट से "<<i<<" गहराई पर मिला।"; return 0; }

आउटपुट

डेटा सेट: 86 63 95 6 7 67 52 26 45 98 दिए गए डेटा सेट का न्यूनतम एलिमेंट 6 है जो रूट से 2 गहराई पर मिला।

  1. C++ में बाइनरी ट्री में अधिकतम (या न्यूनतम) मान ढूंढें C++ में बाइनरी ट्री में अधिकतम (या न्यूनतम) मान ढूंढें

    इस समस्या में, हमें एक बाइनरी ट्री दिया गया है। हमारा कार्य बाइनरी ट्री में अधिकतम (या न्यूनतम) मान ढूंढना है। समस्या विवरण: हमें बाइनरी ट्री के उन नोड्स को ढूंढना है जिनका मान बाइनरी ट्री में अधिकतम और न्यूनतम है। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट: आउटपुट: max = 9 , min = 1 समाधान

  1. C++ में बाइनरी सर्च ट्री में निकटतम तत्व खोजें C++ में बाइनरी सर्च ट्री में निकटतम तत्व खोजें

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री (BST) और एक लक्ष्य मान है; हमें उस दिए गए BST में k मान खोजने हैं जो लक्ष्य के सबसे निकट हैं। यहां लक्ष्य मान एक फ्लोटिंग-पॉइंट संख्या है। हम मान सकते हैं कि k हमेशा वैध है, और k ≤ कुल नोड्स। उदाहरण के लिए, यदि इनपुट इस तरह का है: लक्ष्य = 3.714286, और k = 2,

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

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