কম্পিউটার টিউটোরিয়াল

পাইথন প্রোগ্রাম: সিঙ্গলি লিংকড লিস্ট প্যালিনড্রোম কিনা যাচাই করা


যখন একটি সিঙ্গলি লিংকড লিস্ট প্যালিনড্রোম কিনা তা যাচাই করা প্রয়োজন হয়, তখন উপাদান যোগ করার, পূর্ববর্তী নোড পাওয়ার এবং প্যালিনড্রোম কিনা চেক করার মেথডগুলো নির্ধারণ করা হয়।

নিচে এর একটি উদাহরণ দেওয়া হলো:

উদাহরণ

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' মেথডটি কল করা হয়েছে।

  • প্রাসঙ্গিক আউটপুট কনসোলে প্রদর্শিত হয়েছে।


  1. পাইথনে লিংকড লিস্টের আইটেম প্যালিনড্রোম বানাচ্ছে কিনা যাচাই করার প্রোগ্রাম

  2. পাইথনে লিস্ট স্ট্রিক্টলি ইনক্রিজিং বা ডিক্রিজিং কিনা যাচাই করার প্রোগ্রাম

  3. পাইথনে প্যালিনড্রোম লিংকড লিস্ট (Palindrome Linked List in Python)

  4. পাইথনে লিস্ট খালি কিনা যাচাই করার প্রোগ্রাম