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

प्रीऑर्डर ट्रैवर्सल का उपयोग करके BST में रूट से छोटे तत्वों की संख्या ज्ञात करना C++ में


आपको प्रीऑर्डर ट्रैवर्सल का परिणाम दिया गया है। आपको उन तत्वों की संख्या ज्ञात करनी है जो रूट से छोटे हैं।

प्रीऑर्डर ट्रैवर्सल में पहला तत्व BST का रूट होता है। आइए एक उदाहरण देखते हैं।

इनपुट

preorder_result = [5, 4, 2, 1, 7, 6, 8, 9]

आउटपुट

3

रूट से छोटे तीन तत्व हैं। रूट 5 है।

एल्गोरिदम

  • प्रीऑर्डर परिणाम को एक सरणी में आरंभ करें।
  • पहला तत्व यानी BST का रूट एक वेरिएबल में स्टोर करें।
  • एक लूप लिखें जो प्रीऑर्डर परिणाम के दूसरे तत्व से पुनरावृति करता है।
    • प्रत्येक तत्व की तुलना रूट से करें।
    • यदि वर्तमान तत्व रूट से छोटा है, तो काउंट बढ़ाएं।
  • काउंट वापस करें।

कार्यान्वयन

निम्नलिखित C++ में उपरोक्त एल्गोरिदम का कार्यान्वयन है:

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

int getElementsCount(int arr[], int n) { 
    if (n < 0) { 
        return 0; 
    } 
    int i, root = arr[0], count = 0; 
    for(i = 1; i < n; i++) { 
        if(arr[i] < root) { 
            count += 1; 
        } 
    } 
    return count; 
} 

int main() { 
    int preorder[] = {5, 4, 2, 1, 7, 6, 8, 9}; 
    int n = 8; 
    cout << getElementsCount(preorder, n) << endl; 
    return 0; 
}

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्नलिखित परिणाम मिलेगा।

3

  1. - C++ में लगातार तत्वों के XOR का उपयोग करके सरणी के तत्व ढूंढना

    मान लीजिए हमें n तत्वों की सूची ढूंढनी है। लेकिन हमारे पास वास्तविक सरणी के दो लगातार तत्वों का XOR मान है। साथ ही वास्तविक सरणी का पहला तत्व दिया गया है। यदि सरणी के तत्व a, b, c, d, e, f हैं, तो दी गई सरणी a^b, b^c, c^d, d^e, e^f होगी। चूंकि पहला नंबर a दिया गया है, इससे हम सभी नंबर ढूंढ सकते हैं

  1. - C++ में सरणी के सभी तत्वों को हटाने के लिए आवश्यक न्यूनतम ऑपरेशन

    समस्या कथन एक पूर्णांक सरणी arr दी गई है, सरणी के सभी तत्वों को हटाने के लिए आवश्यक न्यूनतम ऑपरेशन की संख्या प्रिंट करें। तत्व हटाते समय निम्न प्रतिबंध है: सरणी से किसी भी तत्व को यादृच्छिक रूप से चुना जा सकता है और उससे विभाज्य हर तत्व को सरणी से हटाया जा सकता है यदि arr[] = {2, 4, 15, 10, 8,

  1. - C++ में सरणी में एक संख्या की फ्रीक्वेंसी ज्ञात करना

    मान लीजिए हमारे पास एक सरणी है। इसमें n अलग-अलग तत्व हैं। हमें सरणी में एक तत्व की फ्रीक्वेंसी जांचनी है। मान लीजिए A = [5, 12, 26, 5, 3, 4, 15, 5, 8, 4], यदि हम 5 की फ्रीक्वेंसी ढूंढने की कोशिश करते हैं, तो यह 3 होगी। इसे हल करने के लिए, हम सरणी को बाएं से स्कैन करेंगे, यदि तत्व दी गई संख्या के सम