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

पायथन प्रोग्राम: दिए गए ट्री में गैर-पत्ती नोड्स की संख्या गिनना


जब ट्री में गैर-पत्ती नोड्स की संख्या ज्ञात करने की आवश्यकता होती है, तो एक 'Tree_structure' क्लास बनाई जाती है, रूट मान सेट करने और अन्य मान जोड़ने के तरीके परिभाषित किए जाते हैं। विभिन्न विकल्प दिए जाते हैं जिन्हें उपयोगकर्ता चुन सकता है। उपयोगकर्ता की पसंद के आधार पर, ट्री तत्वों पर ऑपरेशन किया जाता है।

उदाहरण

class Tree_structure:
    def __init__(self, data=None):
        self.key = data
        self.children = []
    
    def set_root(self, data):
        self.key = data
    
    def add_vals(self, node):
        self.children.append(node)
    
    def search_val(self, key):
        if self.key == key:
            return self
        for child in self.children:
            temp = child.search_val(key)
            if temp is not None:
                return temp
        return None
    
    def count_non_leaf_node(self):
        nonleaf_count = 0
        if self.children != []:
            nonleaf_count = 1
        for child in self.children:
            nonleaf_count = nonleaf_count + child.count_non_leaf_node()
        return nonleaf_count

tree = None
print('मेनू (यह मानता है कोई डुप्लिकेट कुंजी नहीं)')
print('add  at root')
print('add  below ')
print('count')
print('quit')

while True:
    my_input = input('आप कौन सा ऑपरेशन करना चाहेंगे? ').split()
    operation = my_input[0].strip().lower()
    
    if operation == 'add':
        data = int(my_input[1])
        newNode = Tree_structure(data)
        suboperation = my_input[2].strip().lower()
        if suboperation == 'at':
            tree = newNode
        elif suboperation == 'below':
            position = my_input[3].strip().lower()
            key = int(position)
            ref_node = None
            if tree is not None:
                ref_node = tree.search_val(key)
            if ref_node is None:
                print('ऐसी कोई कुंजी नहीं।')
                continue
            ref_node.add_vals(newNode)
    elif operation == 'count':
        if tree is None:
            print('ट्री खाली है')
        else:
            count = tree.count_non_leaf_node()
            print('गैर-पत्ती नोड्स की संख्या है: {}'.format(count))
    elif operation == 'quit':
        break

आउटपुट

मेनू (यह मानता है कोई डुप्लिकेट कुंजी नहीं)
add  at root
add  below 
count
quit
आप कौन सा ऑपरेशन करना चाहेंगे? add 34 at root
आप कौन सा ऑपरेशन करना चाहेंगे? add 78 below 34
आप कौन सा ऑपरेशन करना चाहेंगे? add 56 below 78
आप कौन सा ऑपरेशन करना चाहेंगे? add 90 below 56
आप कौन सा ऑपरेशन करना चाहेंगे? count
गैर-पत्ती नोड्स की संख्या है: 3
आप कौन सा ऑपरेशन करना चाहेंगे? quit

व्याख्या

  • 'Tree_structure' क्लास बनाई गई है।

  • यह 'key' को True सेट करता है और ट्री के बच्चों के लिए एक खाली सूची सेट करता है।

  • इसमें एक 'set_root' फ़ंक्शन है जो ट्री के लिए रूट मान सेट करने में मदद करता है।

  • 'add_vals' नामक एक विधि परिभाषित की गई है, जो ट्री में एक तत्व जोड़ने में मदद करती है।

  • 'search_val' नामक एक अन्य विधि परिभाषित की गई है, जो ट्री में एक तत्व खोजने में मदद करती है।

  • 'count_non_leaf_nodes' नामक एक अन्य विधि परिभाषित की गई है, जो ट्री के गैर-पत्ती नोड्स की संख्या प्राप्त करने में मदद करती है।

  • यह एक पुनरावर्ती फ़ंक्शन है।

  • चार विकल्प दिए गए हैं, जैसे 'add at root', 'add below', 'count' और 'quit'।

  • उपयोगकर्ता द्वारा दिए गए विकल्प के आधार पर, संबंधित ऑपरेशन किया जाता है।

  • यह आउटपुट कंसोल पर प्रदर्शित होता है।


  1. पायथन में दिए गए एज को शामिल करने वाले अद्वितीय पथों की संख्या गिनने का प्रोग्राम पायथन में दिए गए एज को शामिल करने वाले अद्वितीय पथों की संख्या गिनने का प्रोग्राम

    मान लीजिए हमारे पास (u, v) के रूप में एज की सूची है जो एक ट्री दर्शाती है। प्रत्येक एज के लिए हमें उन अद्वितीय पथों की कुल संख्या ज्ञात करनी है जिनमें वह एज शामिल है, उसी क्रम में जैसे इनपुट में दिया गया है। उदाहरण के लिए, यदि इनपुट है edges = [[0, 1],[0, 2],[1, 3],[1, 4]], तो आउटपुट [6, 4, 4, 4] ह

  1. पायथन में बाइनरी ट्री के लीफ और नॉन-लीफ नोड्स खोजने का प्रोग्राम पायथन में बाइनरी ट्री के लीफ और नॉन-लीफ नोड्स खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें दो संख्याओं की एक सूची ढूंढनी है जहां पहली संख्या ट्री में पत्तियों की संख्या है और दूसरी संख्या गैर-पत्ती नोड्स की संख्या है।इसलिए, यदि इनपुट इस तरह हैतो आउटपुट (3, 2) होगा, क्योंकि 3 पत्तियां और 2 गैर-पत्ती नोड्स हैं।इसे हल करने के लिए, हम इन चरणों का पा

  1. Python प्रोग्राम से सेट का उपयोग करके दी गई स्ट्रिंग में स्वरों की संख्या गिनना Python प्रोग्राम से सेट का उपयोग करके दी गई स्ट्रिंग में स्वरों की संख्या गिनना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक स्ट्रिंग दी गई है, हमें सेट का उपयोग करके दी गई स्ट्रिंग में स्वरों की संख्या गिनने की आवश्यकता है। यहां हम पूरी स्ट्रिंग को पार करते हैं और जांचते हैं कि प्रत्येक वर्ण स्वर है या नहीं और काउंट बढ़ाते हैं। आ