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

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


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

उदाहरण

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class my_linked_list:
    def __init__(self):
        self.head = None
        self.last_node = None

    def add_value(self, my_data):
        if self.last_node is None:
            self.head = Node(my_data)
            self.last_node = self.head
        else:
            self.last_node.next = Node(my_data)
            self.last_node = self.last_node.next

    def print_it(self):
        curr = self.head
        while curr is not None:
            print(curr.data)
            curr = curr.next

    def find_index_val(self, my_key):
        curr = self.head
        index_val = 0
        while curr:
            if curr.data == my_key:
                return index_val
            curr = curr.next
            index_val = index_val + 1
        return -1

my_instance = my_linked_list()
my_list = [67, 4, 78, 98, 32, 0, 11, 8]
for data in my_list:
    my_instance.add_value(data)
print('लिंक्ड लिस्ट है: ')
my_instance.print_it()
print()
my_key = int(input('आप किस वैल्यू को खोजना चाहेंगे? '))
index_val = my_instance.find_index_val(my_key)
if index_val == -1:
    print(str(my_key) + ' नहीं मिला।')
else:
    print('एलिमेंट इंडेक्स ' + str(index_val) + ' पर मिला।')
n = int(input('आप कितने एलिमेंट्स जोड़ना चाहेंगे? '))
for i in range(n):
    data = int(input('डेटा दर्ज करें: '))
    my_instance.add_value(data)
print('लिंक्ड लिस्ट है: ')
my_instance.print_it()

आउटपुट

लिंक्ड लिस्ट है: 67 4 78 98 32 0 11 8
आप किस वैल्यू को खोजना चाहेंगे? 11
एलिमेंट इंडेक्स 6 पर मिला।
आप कितने एलिमेंट्स जोड़ना चाहेंगे? 2
डेटा दर्ज करें: 111
डेटा दर्ज करें: 56
लिंक्ड लिस्ट है: 67 4 78 98 32 0 11 8 111 56

व्याख्या

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

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

  • इसमें एक 'init' फंक्शन है जो पहले एलिमेंट यानी 'head' को 'None' और लास्ट नोड को 'None' से इनिशियलाइज़ करता है।

  • 'add_value' नामक एक अन्य मेथड डिफाइन की गई है, जिसका उपयोग लिंक्ड लिस्ट में डेटा जोड़ने के लिए किया जाता है।

  • 'print_it' नामक एक अन्य मेथड डिफाइन की गई है जो लिंक्ड लिस्ट डेटा को कंसोल पर डिस्प्ले करने के लिए उपयोग की जाती है।

  • 'find_index_val' नामक एक अन्य मेथड डिफाइन की गई है जो यूज़र द्वारा दर्ज किए गए एलिमेंट का इंडेक्स खोजने में मदद करती है।

  • 'my_linked_list' क्लास का एक ऑब्जेक्ट बनाया गया है।

  • एक लिस्ट डिफाइन की गई है।

  • इस लिस्ट पर इटरेट किया जाता है, और डेटा जोड़ने के लिए इस पर मेथड्स कॉल की जाती हैं।

  • यह 'print_it' मेथड का उपयोग करके कंसोल पर डिस्प्ले किया जाता है।

  • खोजे जाने वाले एलिमेंट के लिए यूज़र इनपुट मांगा जाता है।

  • इस पर 'find_index_val' मेथड कॉल की जाती है, और आउटपुट कंसोल पर डिस्प्ले किया जाता है।


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

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

  1. - पायथन प्रोग्राम: बाइनरी सर्च एल्गोरिदम

    इस लेख में, हम दी गई समस्या के समाधान और दृष्टिकोण के बारे में जानेंगे।समस्या कथन - हमें एक सॉर्ट की गई सूची दी जाएगी और हमें बाइनरी सर्च की मदद से एक तत्व ढूंढना होगा।एल्गोरिदमx की तुलना मध्य तत्व से करें।यदि x मध्य तत्व से मेल खाता है, तो हम मध्य इंडेक्स वापस करते हैं।अन्यथा यदि x मध्य तत्व से बड़

  1. पायथन प्रोग्राम: लीनियर सर्च एल्गोरिदम पायथन प्रोग्राम: लीनियर सर्च एल्गोरिदम

    इस लेख में, हम पायथन 3.x या उससे पहले के संस्करण में लीनियर सर्च और इसके कार्यान्वयन के बारे में जानेंगे।एल्गोरिदमदिए गए arr[] के बाएं सबसे तत्व से शुरू करें और एक-एक करके तत्व x की तुलना arr[] के प्रत्येक तत्व से करेंयदि x किसी तत्व से मेल खाता है, तो इंडेक्स मान वापस करें।यदि x, arr[] के किसी भी त