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 sort_list(self):
      curr = self.head
      if(self.head == None):
         print("The list is empty")
      else:
         while(True):
            index_val = curr.next
            while(index_val != self.head):
               if(curr.data > index_val.data):
                  temp = curr.data
                  curr.data = index_val.data
                  index_val.data = temp
               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(27)
   print("The list is :")
   my_cl.print_it()
   print("The list is being sorted")
   my_cl.sort_list()
   print("The sorted list is : ")
   my_cl.print_it()

आउटपुट

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

स्पष्टीकरण

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

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

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

  1. पायथन प्रोग्राम में तत्वों की लंबाई के अनुसार सूची को क्रमबद्ध करें

    हमारे पास स्ट्रिंग्स की एक सूची है और हमारा लक्ष्य सूची में स्ट्रिंग्स की लंबाई के आधार पर सूची को सॉर्ट करना है। हमें स्ट्रिंग्स को उनकी लंबाई के अनुसार आरोही क्रम में व्यवस्थित करना होगा। हम अपने एल्गोरिदम या पायथन . का उपयोग करके ऐसा कर सकते हैं अंतर्निहित विधि सॉर्ट () या फ़ंक्शन क्रमबद्ध () एक

  1. तत्वों की लंबाई के अनुसार एक सूची को सॉर्ट करने के लिए पायथन प्रोग्राम?

    यहां हम एक उपयोगकर्ता इनपुट सरणी का उपयोग करते हैं और हमें तत्वों की लंबाई के अनुसार सूची को क्रमबद्ध करना होगा। यहां हम पायथन इनबिल्ट फंक्शन सॉर्टेड () का उपयोग करते हैं। उदाहरण Input::[“mona”,”pp”,”aaa”] Lengths are [4,2,3] So, the sorted array should be [2,3,4] Output::[“pp”,”aaa”,”mona”] एल्गो