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

C++ में सरणी BST के प्रीऑर्डर ट्रैवर्सल को दर्शा सकती है या नहीं जांचें


समस्या विवरण

एक सरणी दी गई है, जांचें कि क्या यह किसी BST का वैध प्रीऑर्डर ट्रैवर्सल हो सकती है।

उदाहरण: {40, 30, 35, 80, 100} → वैध BST प्रीऑर्डर

एल्गोरिदम (स्टैक का उपयोग)

  1. खाली स्टैक और root = INT_MIN
  2. प्रत्येक तत्व के लिए:
    • यदि तत्व < root → false
    • जब तक स्टैक खाली नहीं और तत्व > स्टैक टॉप: स्टैक से पॉप करें, अंतिम पॉप किया गया root बने
    • तत्व को स्टैक में पुश करें
  3. अंत में true

उदाहरण कोड

#include <iostream>
#include <stack>
#include <climits>
using namespace std;

bool isValidPreorder(int pre[], int n) {
    stack stk;
    int root = INT_MIN;
    
    for (int i = 0; i < n; i++) {
        if (pre[i] < root) return false;
        while (!stk.empty() && stk.top() < pre[i]) {
            root = stk.top();
            stk.pop();
        }
        stk.push(pre[i]);
    }
    return true;
}

int main() {
    int pre[] = {40, 30, 35, 80, 100};
    int n = sizeof(pre)/sizeof(pre[0]);
    if (isValidPreorder(pre, n))
        cout << "This can form BST";
    else
        cout << "This cannot form BST";
    return 0;
}

आउटपुट

This can form BST
  1. C++ प्रोग्राम: बाइनरी ट्री का प्रीऑर्डर नॉन-रिकर्सिव ट्रैवर्सल C++ प्रोग्राम: बाइनरी ट्री का प्रीऑर्डर नॉन-रिकर्सिव ट्रैवर्सल

    ट्री ट्रैवर्सल ग्राफ ट्रैवर्सल का एक रूप। ट्री के प्रत्येक नोड को ठीक एक बार चेक/प्रिंट करना शामिल है। प्रीऑर्डर ट्रैवर्सल क्रम: रूट → बाएं → दाएं। बाइनरी ट्री उदाहरण Preorder Traversal: 5 3 2 4 8 9 C++ प्रोग्राम उदाहरण (इटरेटिव/नॉन-रिकर्सिव) left); } } struct Node* insertNode(struct Node*

  1. C++ में दिए गए बाइनरी ट्री का प्रीऑर्डर रिकर्सिव ट्रैवर्सल करने का प्रोग्राम C++ में दिए गए बाइनरी ट्री का प्रीऑर्डर रिकर्सिव ट्रैवर्सल करने का प्रोग्राम

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

  1. पायथन में प्रीऑर्डर ट्रैवर्सल से बाइनरी सर्च ट्री बनाएं पायथन में प्रीऑर्डर ट्रैवर्सल से बाइनरी सर्च ट्री बनाएं

    मान लीजिए हमें एक बाइनरी सर्च ट्री बनाना है जो दिए गए प्रीऑर्डर ट्रैवर्सल से मेल खाता हो। इसलिए यदि प्री-ऑर्डर ट्रैवर्सल [8,5,1,7,10,12] जैसा है, तो आउटपुट [8,5,10,1,7,null,12] होगा, इसलिए ट्री होगा -इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -root := प्रीऑर्डर ट्रैवर्सल लिस्ट का 0वां नोडstack :