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

कैसे जांचें कि सी # में रिकर्सन का उपयोग कर बाइनरी पेड़ वैध बाइनरी सर्च पेड़ है या नहीं?

एक ट्री एक बाइनरी सर्च ट्री है यदि उसके सभी बाएँ बच्चे नोड तत्वों से कम हैं और सभी दाएँ बच्चे नोड तत्वों से बड़े हैं। प्रारंभ में हम जांचते हैं कि क्या नोड का कोई मूल्य है, यदि नोड शून्य है तो हम मान्य बाइनरी सर्च ट्री मानते हैं और सही लौटते हैं। नोड नल परिणाम की जाँच करने के बाद, हम नोड, न्यूनतम मान और अधिकतम मान पास करके पुनरावर्ती विधि isValidBST कहते हैं। यदि मूल मान न्यूनतम से कम है और मूल मान अधिकतम से अधिक है, तो हम बाइनरी सर्च ट्री नहीं मानते हैं और असत्य वापस लौटते हैं, अन्यथा हम isValidBST विधि को बाएं और दाएं मान को पुनरावर्ती रूप से तब तक कहते हैं जब तक कि यह सभी नोड्स की जांच न कर ले

उदाहरण

public class TreesPgm{
   public class Node{
      public int Value;
      public Node LeftChild;
      public Node RightChild;
      public Node(int value){
         this.Value = value;
      }
      public override String ToString(){
         return "Node=" + Value;
      }
   }
   public bool isValidBST(Node root){
      if (root == null){
         return true;
      }
      return isValidBST(root, int.MinValue, int.MaxValue);
   }
   private bool isValidBST(Node root, int min, int max){
      if (root == null){
         return true;
      }
      if (root.Value <= min || root.Value >= max){
         return false;
      }
      return isValidBST(root.LeftChild, min, root.Value) && isValidBST(root.RightChild,
      root.Value, max);
   }
}

इनपुट

   5
  2 6
1  3

आउटपुट

True

  1. जांचें कि क्या एक स्ट्रिंग सी ++ में एक बाइनरी ट्री में रूट से लीव्स पाथ तक एक वैध अनुक्रम है

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है जहां रूट से किसी भी पत्ते तक जाने वाला प्रत्येक पथ एक वैध अनुक्रम बनाता है, हमें यह जांचना होगा कि दिए गए स्ट्रिंग ऐसे बाइनरी ट्री में एक वैध अनुक्रम है या नहीं। हम दिए गए स्ट्रिंग को पूर्णांकों की एक सरणी के संयोजन से प्राप्त करेंगे और एक पथ के साथ नोड्स के

  1. C++ में निकटतम बाइनरी सर्च ट्री वैल्यू II

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

  1. पायथन में बाइनरी ट्री BST है या नहीं, यह जांचने के लिए प्रोग्राम

    मान लीजिए हमारे पास बाइनरी ट्री है; हमें यह जांचना होगा कि यह बाइनरी सर्च ट्री है या नहीं। जैसा कि हम जानते हैं कि बीएसटी में निम्नलिखित गुण होते हैं - इसके बाएँ उपप्रकार के सभी नोड वर्तमान नोड मान से छोटे हैं इसके दाहिने सबट्री के सभी नोड वर्तमान नोड मान से बड़े हैं ये गुण सभी नोड्स के लिए पुनरावर