যখন একটি সিঙ্গলি লিংকড লিস্ট প্যালিনড্রোম কিনা তা যাচাই করা প্রয়োজন হয়, তখন উপাদান যোগ করার, পূর্ববর্তী নোড পাওয়ার এবং প্যালিনড্রোম কিনা চেক করার মেথডগুলো নির্ধারণ করা হয়।
নিচে এর একটি উদাহরণ দেওয়া হলো:
উদাহরণ
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
ব্যাখ্যা
'Node' ক্লাস তৈরি করা হয়েছে।
প্রয়োজনীয় অ্যাট্রিবিউটসহ আরেকটি 'LinkedList_struct' ক্লাস তৈরি করা হয়েছে।
এতে একটি 'init' ফাংশন আছে যা প্রথম উপাদান অর্থাৎ 'head' কে 'None' এবং লাস্ট নোডকে 'None' ইনিশিয়ালাইজ করতে ব্যবহৃত হয়।
'add_elements' নামে আরেকটি মেথড নির্ধারণ করা হয়েছে, যা লিংকড লিস্টের পূর্ববর্তী নোড বের করতে ব্যবহৃত হয়।
'get_previous_node' নামে আরেকটি মেথড নির্ধারণ করা হয়েছে যা লিংকড লিস্টের ডেটা কনসোলে প্রদর্শন করতে ব্যবহৃত হয়।
'check_palindrome' নামে একটি মেথড নির্ধারণ করা হয়েছে, যা প্রথম এবং শেষ উপাদান তুলনা করে, যদি সেগুলো একই না হয় তবে নির্ধারণ করে যে লিস্টটি প্যালিনড্রোমিক নয়।
'LinkedList_struct' ক্লাসের একটি অবজেক্ট তৈরি করা হয়েছে।
লিংকড লিস্টের উপাদানগুলো জন্য ইউজার ইনপুট নেওয়া হয়েছে।
উপাদানগুলো লিংকড লিস্টে যোগ করা হয়েছে।
এই লিংকড লিস্টে 'check_palindrome' মেথডটি কল করা হয়েছে।
প্রাসঙ্গিক আউটপুট কনসোলে প্রদর্শিত হয়েছে।