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

जांचें कि क्या दिया गया सरणी सी ++ में बाइनरी सर्च ट्री के प्रीऑर्डर ट्रैवर्सल का प्रतिनिधित्व कर सकता है

मान लीजिए कि हमारे पास एक सरणी में तत्वों की एक सूची है, हमें यह जांचना होगा कि क्या तत्व बाइनरी सर्च ट्री का प्रीऑर्डर ट्रैवर्सल हो सकता है या नहीं। मान लीजिए कि एक क्रम {40, 30, 35, 80, 100} जैसा है, तो पेड़ जैसा होगा -

जांचें कि क्या दिया गया सरणी सी ++ में बाइनरी सर्च ट्री के प्रीऑर्डर ट्रैवर्सल का प्रतिनिधित्व कर सकता है

हम इसे एक स्टैक का उपयोग करके हल कर सकते हैं। इस समस्या को हल करने के लिए हमें इन चरणों का पालन करना होगा।

  • खाली स्टैक परिभाषित करें
  • रूट को ऋणात्मक अनंत के रूप में सेट करें
  • पूर्व-आदेश क्रम में प्रत्येक तत्व के लिए, निम्न कार्य करें -
    • यदि तत्व वर्तमान रूट से छोटा है, तो झूठी वापसी करें
    • तत्वों को स्टैक से हटाते रहें, जबकि तत्व स्टैक टॉप से ​​बड़ा है, और अंतिम रूप से हटाए गए तत्व को रूट के रूप में बनाएं।
    • तत्व को स्टैक में पुश करें

उदाहरण

#include <iostream>
#include <stack>
using namespace std;
bool isValidPreorder(int pre[], int n) {
   stack<int> 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 can not form BST";
}

आउटपुट

This can form BST

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

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

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

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

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

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