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

पोस्टऑर्डर का उपयोग करके डेप्थ फर्स्ट सर्च ट्रैवर्सल लागू करने का पायथन प्रोग्राम


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

उदाहरण

class Tree_Struct:
    def __init__(self, key=None):
        self.key = key
        self.children = []
    def add_elem(self, node):
        self.children.append(node)
    def search_elem(self, key):
        if self.key == key:
            return self
        for child in self.children:
            temp = child.search_elem(key)
            if temp is not None:
                return temp
        return None
    def postorder_traversal(self):
        for child in self.children:
            child.postorder_traversal()
        print(self.key, end=' ')

my_instance = None
print('मेन्यू (यह मानता है कोई डुप्लिकेट कीज़ नहीं)')
print('add  at root')
print('add  below ')
print('dfs')
print('quit')
while True:
    my_input = input('आप कौन सा ऑपरेशन करेंगे? ').split()
    operation = my_input[0].strip().lower()
    if operation == 'add':
        data = int(my_input[1])
        new_node = Tree_Struct(data)
        suboperation = my_input[2].strip().lower()
        if suboperation == 'at':
            my_instance = new_node
        else:
            position = my_input[3].strip().lower()
            key = int(position)
            ref_node = None
            if my_instance is not None:
                ref_node = my_instance.search_elem(key)
            if ref_node is None:
                print('ऐसी कोई की नहीं है')
                continue
            ref_node.add_elem(new_node)
    elif operation == 'dfs':
        print('पोस्ट-ऑर्डर ट्रैवर्सल है:', end='')
        my_instance.postorder_traversal()
        print()
    elif operation == 'quit':
        break

आउटपुट

मेन्यू (यह मानता है कोई डुप्लिकेट कीज़ नहीं)
add  at root
add  below 
dfs
quit
आप कौन सा ऑपरेशन करेंगे? add 5 at root
आप कौन सा ऑपरेशन करेंगे? insert 9 below 5
आप कौन सा ऑपरेशन करेंगे? insert 2 below 9
आप कौन सा ऑपरेशन करेंगे? dfs
पोस्ट-ऑर्डर ट्रैवर्सल है: 5
आप कौन सा ऑपरेशन करेंगे? quit

व्याख्या

  • आवश्यक एट्रिब्यूट्स के साथ 'Tree_struct' क्लास बनाई जाती है।

  • इसमें एक 'init' फंक्शन होता है जो एक खाली सूची बनाने के लिए उपयोग किया जाता है।

  • इसमें एक 'add_elem' मेथड होती है जो ट्री में एलिमेंट्स जोड़ने में मदद करती है।

  • 'postorder_traversal' नामक एक अन्य मेथड जो पोस्टऑर्डर ट्रैवर्सल करती है।

  • 'search_elem' नामक एक मेथड परिभाषित की जाती है जो किसी विशिष्ट एलिमेंट को खोजने में मदद करती है।

  • एक इंस्टेंस बनाया जाता है और 'None' असाइन किया जाता है।

  • उपयोगकर्ता इनपुट उस ऑपरेशन के लिए लिया जाता है जिसे करने की आवश्यकता है।

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

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


  1. - पायथन प्रोग्राम: डबल लिंक्ड लिस्ट में एलिमेंट खोजें

    जब डबल लिंक्ड लिस्ट में किसी एलिमेंट को खोजने की आवश्यकता होती है, तो एक Node क्लास बनाने की आवश्यकता होती है। इस क्लास में तीन एट्रिब्यूट्स होते हैं, नोड में मौजूद डेटा, लिंक्ड लिस्ट के अगले नोड तक पहुंच, और लिंक्ड लिस्ट के पिछले नोड तक पहुंच।एक और क्लास बनाने की आवश्यकता होती है जिसमें एक इनिशियला

  1. - पायथन प्रोग्राम: सर्कुलर लिंक्ड लिस्ट में एलिमेंट सर्च करना

    सर्कुलर लिंक्ड लिस्ट में किसी एलिमेंट को सर्च करने के लिए, हमें एक Node क्लास बनाने की आवश्यकता होती है। इस क्लास में दो एट्रिब्यूट्स होते हैं: नोड में मौजूद डेटा और लिंक्ड लिस्ट के अगले नोड का एक्सेस। सर्कुलर लिंक्ड लिस्ट की संरचना सर्कुलर लिंक्ड लिस्ट में, हेड (head) और रियर (rear) एक-दूसरे से जु

  1. पायथन प्रोग्राम में यूनिट टेस्टिंग Unittest का उपयोग करके पायथन प्रोग्राम में यूनिट टेस्टिंग Unittest का उपयोग करके

    इस लेख में, हम पायथन 3.x में उपलब्ध unittest मॉड्यूल की मदद से सॉफ्टवेयर टेस्टिंग के फंडामेंटल्स सीखेंगे। या इससे पहले। यह ऑटोमेशन, टेस्ट्स के लिए सेटअप और एग्जिट कोड शेयर करने, और हर फ्रेमवर्क के लिए इंडिपेंडेंट टेस्ट्स की अनुमति देता है। यूनिट टेस्ट में, हम ऑब्जेक्ट ओरिएंटेड कॉन्सेप्ट्स की एक वि