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

एक परिपत्र लिंक्ड सूची में एक तत्व खोजने के लिए पायथन कार्यक्रम

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

एक वृत्ताकार लिंक्ड सूची में, सिर और पिछला एक दूसरे से सटे हुए होते हैं। वे एक सर्कल बनाने के लिए जुड़े हुए हैं, और अंतिम नोड में 'NULL' मान नहीं है। एक और वर्ग बनाने की जरूरत है जिसमें एक प्रारंभिक कार्य होगा, और नोड के प्रमुख को 'कोई नहीं' के लिए प्रारंभ किया जाएगा।

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

नीचे उसी के लिए एक प्रदर्शन है -

उदाहरण

class Node:
   def __init__(self,data):
      self.data = data
      self.next = None
class list_creation:
   def __init__(self):
      self.head = Node(None)
      self.tail = Node(None)
      self.head.next = self.tail
      self.tail.next = self.head
   def add_data(self,my_data):
      new_node = Node(my_data)
      if self.head.data is None:
         self.head = new_node
         self.tail = new_node
         new_node.next = self.head
      else:
         self.tail.next = new_node
         self.tail = new_node
         self.tail.next = self.head
   def search_value(self,elem_to_search):
      curr = self.head;
      i = 1;
      flag_val = False;
      if(self.head == None):
         print("The list is empty");
      else:
         while(True):
            if(curr.data == elem_to_search):
               flag_val = True;
               break;
            curr = curr.next;
            i = i + 1;
            if(curr == self.head):
               break;
         if(flag_val):
            print("The element is present in list at position : " + str(i));
         else:
            print("The element is not present in list");
   def print_it(self):
      curr = self.head
      if self.head is None:
         print("The list is empty");
         return;
      else:
         print(curr.data)
         while(curr.next != self.head):
            curr = curr.next
            print(curr.data)
         print("\n")
class circular_linked_list:
   my_cl = list_creation()
   print("Nodes are being added to the list")
   my_cl.add_data(21)
   my_cl.add_data(54)
   my_cl.add_data(78)
   my_cl.add_data(99)
   my_cl.add_data(27)
   print("The list is :")
   my_cl.print_it()
   print("Value 99 is being searched")
   my_cl.search_value(99)
   print("Value 0 is being searched")
   my_cl.search_value(0)

आउटपुट

Nodes are being added to the list
The list is :
21
54
78
99
27
Value 99 is being searched
The element is present in list at position : 4
Value 0 is being searched
The element is not present in list

स्पष्टीकरण

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

  1. एन नोड्स द्वारा दोहरी लिंक की गई सूची को घुमाने के लिए पायथन कार्यक्रम

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

  1. सर्कुलर लिंक्ड लिस्ट के तत्वों को छाँटने के लिए पायथन प्रोग्राम

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

  1. पायथन प्रोग्राम में रैखिक खोज

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