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

पायथन में समान स्तर पर पत्तियों के डेटा के योग का गुणनफल खोजें


मान लीजिए हमारे पास एक बाइनरी ट्री है। हमें निम्नलिखित ऑपरेशन करने हैं:

  • प्रत्येक स्तर के लिए, यदि उस स्तर पर पत्ते हैं तो सभी पत्तियों का योग ढूंढें। अन्यथा इसे अनदेखा करें।

  • सभी योगों का गुणनफल ढूंढें और इसे लौटाएं।

तो, यदि इनपुट इस तरह है:

पायथन में समान स्तर पर पत्तियों के डेटा के योग का गुणनफल खोजें

तो आउटपुट 270 होगा। पहले दो स्तरों में कोई पत्ते नहीं हैं। तीसरे स्तर पर एक पत्ता 9 है। अंतिम स्तर पर चार पत्ते 2, 12, 5 और 11 हैं। तो परिणाम 9 * (2 + 12 + 5 + 11) = 270 है।

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

  • यदि root null है, तो:

    • 0 लौटाएं

  • res := 1

  • que := एक क्यू

  • que के अंत में root डालें

  • अनंत रूप से करें:

    • no_of_nodes := que का आकार

    • यदि no_of_nodes, 0 के समान है, तो:

      • लूप से बाहर निकलें

    • sum_level := 0

    • found_leaf := False

    • जब no_of_nodes > 0, करें:

      • curr_node := que का पहला तत्व

      • यदि curr_node पत्ता है, तो:

        • found_leaf := True

        • sum_level := sum_level + curr_node.data

      • que से पहला तत्व हटाएं

      • यदि curr_node.left null नहीं है, तो:

        • curr_node.left को que के अंत में डालें

      • यदि curr_node.right null नहीं है, तो:

        • curr_node.right को que के अंत में डालें

      • no_of_nodes := no_of_nodes - 1

    • यदि found_leaf सच है, तो:

      • res := res * sum_level

  • res लौटाएं

उदाहरण

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

class TreeNode:    def __init__(self, data):       self.data = data       self.left = self.right = None def isLeaf(root) :    return (not root.left and not root.right) def find_res(root) :    if (not root) :       return 0    res = 1    que = []    que.append(root)    while (True):       no_of_nodes = len(que)    if (no_of_nodes == 0) :       break    sum_level = 0    found_leaf = False    while (no_of_nodes > 0) :       curr_node = que[0]       if (isLeaf(curr_node)) :          found_leaf = True          sum_level += curr_node.data          que.pop(0)          if (curr_node.left != None) :             que.append(curr_node.left)          if (curr_node.right != None) :             que.append(curr_node.right)          no_of_nodes -=1       if (found_leaf) :          res *= sum_level    return res root = TreeNode(8) root.left = TreeNode(8) root.right = TreeNode(6) root.left.right = TreeNode(7) root.left.left = TreeNode(9) root.left.right.left = TreeNode(2) root.left.right.right = TreeNode(12) root.right.right = TreeNode(10) root.right.right.left = TreeNode(5) root.right.right.right = TreeNode(11) print(find_res(root))

इनपुट

root = TreeNode(8) root.left = TreeNode(8) root.right = TreeNode(6) root.left.right = TreeNode(7) root.left.left = TreeNode(9) root.left.right.left = TreeNode(2) root.left.right.right = TreeNode(12) root.right.right = TreeNode(10) root.right.right.left = TreeNode(5) root.right.right.right = TreeNode(11)

आउटपुट

270

  1. Python में ट्री के सभी एलिमेंट का योग खोजने का प्रोग्राम Python में ट्री के सभी एलिमेंट का योग खोजने का प्रोग्राम

    मान लीजिए हमारे पास कुछ मानों वाला एक बाइनरी ट्री है, हमें ट्री में सभी मानों का योग ढूंढना है। तो, यदि इनपुट इस तरह है तो आउटपुट 14 होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: recurse() फ़ंक्शन परिभाषित करें। यह node लेगा val := node का मान यदि node का बाएं null नहीं है, तो val := va

  1. पायथन में समान स्तर पर पत्तियों के डेटा के योग का गुणनफल खोजें पायथन में समान स्तर पर पत्तियों के डेटा के योग का गुणनफल खोजें

    मान लीजिए हमारे पास एक बाइनरी ट्री है। हमें निम्नलिखित ऑपरेशन करने हैं:प्रत्येक स्तर के लिए, यदि उस स्तर पर पत्ते हैं तो सभी पत्तियों का योग ढूंढें। अन्यथा इसे अनदेखा करें।सभी योगों का गुणनफल ढूंढें और इसे लौटाएं।तो, यदि इनपुट इस तरह है:तो आउटपुट 270 होगा। पहले दो स्तरों में कोई पत्ते नहीं हैं। तीसर

  1. पायथन प्रोग्राम: ऐरे मल्टीप्लिकेशन को n से विभाजित करने पर शेषफल ढूंढें पायथन प्रोग्राम: ऐरे मल्टीप्लिकेशन को n से विभाजित करने पर शेषफल ढूंढें

    इस लेख में, हम नीचे दिए गए प्रॉब्लम स्टेटमेंट के समाधान के बारे में सीखेंगे: प्रॉब्लम स्टेटमेंट कई नंबर और एक नंबर इनपुट n दिए जाने पर, हमें सभी नंबर को n से विभाज्य गुणा करने के बाद शेषफल प्रिंट करना होगा। दृष्टिकोण पहले, arr[i] % n जैसा शेषफल निकालें। फिर इस शेषफल को वर्तमान परिणाम से गुणा करे