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

पायथन प्रोग्राम यह जाँचने के लिए कि क्या सिंगल लिंक्ड लिस्ट एक पालिंड्रोम है

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

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

उदाहरण

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

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

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

   def get_previous_node(self, ref_node):
      curr = self.head
      while (curr and curr.next != ref_node):
         curr = curr.next
         return curr

def check_palindrome(my_list):
   beg = my_list.head
   end = my_list.last_node
   while (beg != end and end.next != beg):
      if beg.data != end.data:
         return False
      beg = beg.next
      end = my_list.get_previous_node(end)
   return True

my_instance = LinkedList_struct()

my_input = input('Enter elements to the linked list: ').split()
for data in my_input:
   my_instance.add_elements(int(data))

if check_palindrome(my_instance):
   print('The linked list is palindromic in nature')
else:
   print('The linked list is not palindromic in nature')

आउटपुट

Enter elements to the linked list: 89 90 78 90 89
The linked list is palindromic in nature

स्पष्टीकरण

  • 'नोड' वर्ग बनाया गया है।

  • आवश्यक विशेषताओं के साथ एक और 'LinkedList_struct' वर्ग बनाया गया है।

  • इसमें एक 'init' फ़ंक्शन होता है जिसका उपयोग पहले तत्व को प्रारंभ करने के लिए किया जाता है, यानी 'हेड' से 'कोई नहीं' और अंतिम नोड को 'कोई नहीं'।

  • 'add_elements' नाम की एक अन्य विधि परिभाषित की गई है, जिसका उपयोग लिंक की गई सूची में पिछले नोड को लाने के लिए किया जाता है।

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

  • 'check_palindrome' नाम की एक विधि परिभाषित की गई है, जो पहले और अंतिम तत्व की तुलना करती है, यदि वे समान नहीं हैं, तो यह निर्धारित करती है कि सूची प्रकृति में पैलिंड्रोमिक नहीं थी।

  • 'LinkedList_struct' वर्ग का एक ऑब्जेक्ट बनाया जाता है।

  • लिंक की गई सूची के तत्वों के लिए उपयोगकर्ता इनपुट लिया जाता है।

  • तत्वों को लिंक की गई सूची में जोड़ा जाता है।

  • इस लिंक की गई सूची पर 'check_palindrome' पद्धति को कॉल किया जाता है।

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


  1. यह जांचने के लिए कार्यक्रम कि क्या पायथन में सूची सख्ती से बढ़ रही है या सख्ती से घट रही है

    मान लीजिए हमारे पास संख्याओं की एक सूची है; हमें यह जांचना होगा कि सूची सख्ती से बढ़ रही है या सख्ती से घट रही है। इसलिए, यदि इनपुट संख्या =[10, 12, 23, 34, 55] की तरह है, तो आउटपुट सही होगा, क्योंकि सभी तत्व अलग हैं और प्रत्येक तत्व पिछले वाले से बड़ा है, इसलिए यह सख्ती से बढ़ रहा है। इसे हल करने

  1. पायथन में पालिंड्रोम लिंक्ड लिस्ट

    मान लीजिए कि हमारे पास एक लिंक्ड सूची है। हमें यह जांचना होगा कि सूची के तत्व एपेलिंड्रोम बना रहे हैं या नहीं। तो अगर सूची तत्व [1,2,3,2,1] जैसा है, तो यह एक पैलिंड्रोम है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - तेज:=सिर, धीमा:=सिर, रेव:=कोई नहीं और झंडा:=1 यदि सिर खाली है, तो सही ल

  1. एक सूची खाली है या नहीं, यह जांचने के लिए पायथन प्रोग्राम?

    एक खाली सूची दी। हमारा काम मौसम की जांच करना है कि यह सूची खाली है या नहीं। यहाँ हम जाँच करते हैं जाँच का एक निहित तरीका है। एल्गोरिदम Step 1: We take an empty list. Step 2: then check if list is empty then return 1 otherwise 0. उदाहरण कोड # Python code to check for empty list def checklist(A):