जब यह जांचने की आवश्यकता होती है कि क्या एक एकल लिंक की गई सूची एक पैलिंड्रोम है या नहीं, एक तत्व जोड़ने के तरीके, पिछला नोड प्राप्त करें और यह जांचने के लिए कि क्या पैलिंड्रोम बनता है परिभाषित किया गया है।
नीचे उसी का एक प्रदर्शन है -
उदाहरण
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' पद्धति को कॉल किया जाता है।
-
प्रासंगिक आउटपुट कंसोल पर प्रदर्शित होता है।