পাইথনে লিংকড লিস্ট জেনারেট করার প্রোগ্রাম তৈরি করতে হলে একটি 'Node' ক্লাস তৈরি করতে হয়। সার্কুলার লিস্টে ডেটা এলিমেন্টগুলো ডিসপ্লে করতে আরেকটি মেথড সংজ্ঞায়িত করা যায়। এই ক্লাসে দুটি অ্যাট্রিবিউট থাকে: নোডে থাকা ডেটা এবং লিংকড লিস্টের পরবর্তী নোডে অ্যাক্সেস। সার্কুলার লিংকড লিস্টে হেড এবং রিয়ার একে অপরকে স্পর্শ করে। তারা একটি সার্কেল গঠন করে, এবং লাস্ট নোডে 'NULL' ভ্যালু থাকে না।
একটি 'linked_list' ক্লাস তৈরি করতে হয় যাতে একটি ইনিশিয়ালাইজেশন ফাংশন থাকে, এবং নোডের হেড 'None'-এ ইনিশিয়ালাইজ করা হয়।
নিচে ডেমোстран্স্ট্রেশন দেওয়া হলো:
উদাহরণ
class Node:
def __init__(self, my_data):
self.data = my_data
self.next = None
class circularLinkedList:
def __init__(self):
self.head = None
def add_data(self, my_data):
ptr_1 = Node(my_data)
temp = self.head
ptr_1.next = self.head
if self.head is not None:
while temp.next != self.head:
temp = temp.next
temp.next = ptr_1
else:
ptr_1.next = ptr_1
self.head = ptr_1
def print_it(self):
temp = self.head
if self.head is not None:
while True:
print("%d" % (temp.data))
temp = temp.next
if temp == self.head:
break
my_list = circularLinkedList()
print("Elements are added to the list ")
my_list.add_data(56)
my_list.add_data(78)
my_list.add_data(12)
print("The data is : ")
my_list.print_it()
আউটপুট
Elements are added to the list The data is : 12 78 56
ব্যাখ্যা
- 'Node' ক্লাস তৈরি করা হয়েছে।
- প্রয়োজনীয় অ্যাট্রিবিউটসহ 'circularLinkedList' ক্লাস তৈরি করা হয়েছে।
- এতে একটি 'init' ফাংশন আছে যা প্রথম এলিমেন্ট, অর্থাৎ 'head'-কে 'None'-এ ইনিশিয়ালাইজ করতে ব্যবহৃত হয়।
- 'add_data' নামে একটি মেথড সংজ্ঞায়িত করা হয়েছে, যা সার্কুলার লিংকড লিস্টে ডেটা যোগ করতে ব্যবহৃত হয়।
- 'print_it' নামে একটি মেথড সংজ্ঞায়িত করা হয়েছে, যা লিংকড লিস্টের ডেটা কনসোলে ডিসপ্লে করতে ব্যবহৃত হয়।
- 'linked_list' ক্লাসের একটি অবজেক্ট তৈরি করা হয়েছে, এবং ডেটা যোগ করতে মেথডগুলো কল করা হয়েছে।
- 'print_it' মেথড ব্যবহার করে কনসোলে এটি ডিসপ্লে করা হয়।