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

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

यह बाइनरी सर्च ट्री का न्यूनतम मान ज्ञात करने का प्रोग्राम है।

एल्गोरिदम

Begin
    nd को स्ट्रक्चर के रूप में घोषित करें
    d को इंटीजर डेटाटाइप के रूप में घोषित करें
    lt को स्ट्रक्चर nd टाइप के पॉइंटर के रूप में घोषित करें
    rt को स्ट्रक्चर nd टाइप के पॉइंटर के रूप में घोषित करें
    new_nd() फंक्शन को स्ट्रक्चर nd टाइप के रूप में घोषित करें
    d को इंटीजर डेटाटाइप के रूप में घोषित करें
    उन्हें पैरामीटर के रूप में पास करें
    nd को स्ट्रक्चर nd टाइप के पॉइंटर के रूप में घोषित करें
        nd = (struct nd*) malloc(sizeof(struct nd)) से इनिशियलाइज़ करें
        nd->d = d
        nd->lt = NULL
        nd->rt = NULL
        return(nd)
End

Begin
    add_node() फंक्शन को स्ट्रक्चर nd टाइप के रूप में घोषित करें
    nd को स्ट्रक्चर nd टाइप के पॉइंटर के रूप में घोषित करें
    d को इंटीजर डेटाटाइप के रूप में घोषित करें
    उन्हें पैरामीटर के रूप में पास करें
    if (nd == NULL) then
        return(new_nd(d))
    else
        if (d <= nd->d) then
            nd->lt = add_node(nd->lt, d)
        else
            nd->rt = add_node(nd->rt, d)
        return nd
End

Begin
    minimum_val() फंक्शन को इंटीजर डेटाटाइप के रूप में घोषित करें
    nd को स्ट्रक्चर nd टाइप के पॉइंटर के रूप में घोषित करें
    इसे पैरामीटर के रूप में पास करें
    cur को स्ट्रक्चर nd टाइप के पॉइंटर के रूप में घोषित करें
        cur = nd से इनिशियलाइज़ करें
    while (cur->lt != NULL) do
        cur = cur->lt
    return(cur->d)
    
    root को स्ट्रक्चर nd टाइप के पॉइंटर के रूप में घोषित करें
        root = NULL से इनिशियलाइज़ करें
        root = add_node(root, 54)
        add_node(root, 32)
        add_node(root, 25)
        add_node(root, 45)
        add_node(root, 65)
        add_node(root, 75)
        "The Minimum value of the given binary search tree is: " प्रिंट करें
        बाइनरी ट्री का न्यूनतम मान प्रिंट करें
        getchar()
End

उदाहरण

#include <bits/stdc++.h>
using namespace std;

struct nd {
    int d;
    struct nd* lt;
    struct nd* rt;
};

struct nd* new_nd(int d) {
    struct nd* nd = (struct nd*) malloc(sizeof(struct nd));
    nd->d = d;
    nd->lt = NULL;
    nd->rt = NULL;
    return(nd);
}

struct nd* add_node(struct nd* nd, int d) {
    if (nd == NULL)
        return(new_nd(d));
    else {
        if (d <= nd->d)
            nd->lt = add_node(nd->lt, d);
        else
            nd->rt = add_node(nd->rt, d);
        return nd;
    }
}

int minimum_val(struct nd* nd) {
    struct nd* cur = nd;
    while (cur->lt != NULL) {
        cur = cur->lt;
    }
    return(cur->d);
}

int main() {
    struct nd* root = NULL;
    root = add_node(root, 54);
    add_node(root, 32);
    add_node(root, 25);
    add_node(root, 45);
    add_node(root, 65);
    add_node(root, 75);
    cout << "The Minimum value of the given binary search tree is: " << minimum_val(root);
    getchar();
    return 0;
}

आउटपुट

The Minimum value of the given binary search tree is: 25
  1. C++ में बाइनरी ट्री में निकटतम लीफ ढूंढें C++ में बाइनरी ट्री में निकटतम लीफ ढूंढें

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

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

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

  1. C++ में बाइनरी खोज प्रोग्राम C++ में बाइनरी खोज प्रोग्राम

    बाइनरी खोज क्या है? बाइनरी खोज (आधा-अंतराल खोज) एक खोज एल्गोरिदम है जो क्रमबद्ध सरणी में लक्ष्य मान की स्थिति ढूंढता है। यह लक्ष्य मान की तुलना मध्य तत्व से करता है और खोज स्थान को आधा कर देता है। मुख्य बिंदु केवल क्रमबद्ध सरणी पर काम करता है समय जटिलता: O(log n) दुनिया के सभी नाम क्रमबद्ध हों तो