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 remove_duplicate_vals(self):  
      curr = self.head
      if(self.head == None):
         print("The list is empty")
      else:
         while(True):
            temp = curr
            index_val = curr.next
            while(index_val != self.head):
               if(curr.data == index_val.data):
                  temp.next = index_val.next
                else:
                  temp = index_val
             index_val= index_val.next
            curr =curr.next
            if(curr.next == self.head):
               break;        
   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(21)
   print("The list is :")
   my_cl.print_it();  
   my_cl.remove_duplicate_vals()
   print("The updated list is :")
   my_cl.print_it(); 

आउटपुट

Nodes are being added to the list
The list is :
21
54
78
99
21

The updated list is :
21
54
78
99

स्पष्टीकरण

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

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

    मान लीजिए कि हमारे पास संख्याओं की एक लिंक की गई सूची है, हमें उन संख्याओं को हटाना होगा जो लिंक की गई सूची में कई बार दिखाई देती हैं (आउटपुट में केवल एक घटना को पकड़ें), हमें मूल लिंक की गई सूची में उपस्थिति के क्रम को भी बनाए रखना होगा। 9] होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  1. पायथन में दो लिंक्ड सूचियों से सूची तत्वों को इंटरलीव करने का कार्यक्रम

    मान लीजिए कि हमारे पास दो लिंक की गई सूचियाँ l1 और l2 हैं, हमें l1 से शुरू होने वाली इन दो सूचियों के तत्वों को अंतःस्थापित करके एक लिंक्ड सूची वापस करनी होगी। यदि लिंक की गई सूची में कोई बचे हुए नोड हैं, तो उन्हें सूची में जोड़ा जाना चाहिए। इसलिए, यदि इनपुट l1 =[5,4,6,3,4,7] l2 =[8,6,9] जैसा है, त

  1. एक सूची से डुप्लिकेट तत्वों को हटाने के लिए पायथन कार्यक्रम?

    एक सूची डुप्लिकेट तत्व के साथ दी गई है, हमारा कार्य दूसरी सूची बनाना है जिसमें बिना डुप्लिकेट के तत्व शामिल हैं। उदाहरण A::[2,3,4,3,4,6,78,90] Output::[2,3,4,6,78,90] एल्गोरिदम Step 1: create a list. Step 2: create a new list which is empty. Step 3: traverse every element in list. Step 4: if elem