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

यह जाँचने के लिए प्रोग्राम कि क्या किसी पेड़ का क्रमागत क्रम पाइथॉन में पैलिंड्रोम है या नहीं

मान लीजिए कि हमारे पास एक बाइनरी ट्री है जहां प्रत्येक नोड में 0-9 से एक अंक होता है, हमें यह जांचना होगा कि इसका इन-ऑर्डर ट्रैवर्सल पैलिंड्रोम है या नहीं।

तो, अगर इनपुट पसंद है

यह जाँचने के लिए प्रोग्राम कि क्या किसी पेड़ का क्रमागत क्रम पाइथॉन में पैलिंड्रोम है या नहीं

तब आउटपुट ट्रू होगा, क्योंकि इसका इनऑर्डर ट्रैवर्सल [2,6,10,6,2] है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • यदि रूट रिक्त है, तो
    • सही लौटें
  • स्टैक:=एक नया स्टैक
  • करी :=जड़
  • इनऑर्डर :=एक नई सूची
  • जबकि स्टैक खाली नहीं है या curr null नहीं है, करें
    • जबकि curr शून्य नहीं है, करें
      • करी को ढेर में धकेलें
      • curr :=curr के बाएँ
    • नोड:=स्टैक से पॉप किया गया तत्व
    • इनऑर्डर के अंत में नोड का मान डालें
    • curr :=नोड के दाईं ओर
  • सही लौटें जब इनऑर्डर विपरीत क्रम में इनऑर्डर के समान हो, अन्यथा गलत हो।

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

class TreeNode:
   def __init__(self, data, left = None, right = None):
      self.val = data
      self.left = left
      self.right = right
class Solution:
   def solve(self, root):
      if not root:
         return True
      stack = []
      curr = root
      inorder = []
      while stack or curr:
         while curr:
            stack.append(curr)
            curr = curr.left
         node = stack.pop() inorder.append(node.val)
         curr = node.right
      return inorder == inorder[::-1]
ob = Solution()
root = TreeNode(6)
root.left = TreeNode(2)
root.right = TreeNode(6)
root.right.left = TreeNode(10)
root.right.right = TreeNode(2)
print(ob.solve(root))

इनपुट

root = TreeNode(6)
root.left = TreeNode(2)
root.right = TreeNode(6)
root.right.left = TreeNode(10)
root.right.right = TreeNode(2)

आउटपुट

True

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

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

  1. पायथन में दिया गया ग्राफ द्विदलीय है या नहीं, यह जांचने के लिए कार्यक्रम

    मान लीजिए कि हमारे पास एक अप्रत्यक्ष ग्राफ है, हमें यह जांचना है कि ग्राफ द्विदलीय है या नहीं। जैसा कि हम जानते हैं कि एक ग्राफ द्विदलीय होता है जब हम ग्राफ के नोड्स को दो सेट ए और बी में विभाजित कर सकते हैं जैसे कि ग्राफ के प्रत्येक किनारे {यू, वी} में ए में एक नोड और बी में दूसरा नोड वी होता है।

  1. यह जांचने का कार्यक्रम कि क्या एक मान BST में मौजूद है या नहीं, Python में है

    मान लीजिए कि हमारे पास एक बाइनरी सर्च ट्री है और एक अन्य इनपुट जिसे वैल कहा जाता है, हमें यह जांचना होगा कि वैल ट्री में मौजूद है या नहीं। तो, अगर इनपुट पसंद है वैल =7, तो आउटपुट ट्रू होगा, क्योंकि ट्री में 7 मौजूद है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे- फ़ंक्शन को हल करें () परि