সার্কুলার লিংকড লিস্ট তৈরি করে রিভার্স অর্ডারে ডিসপ্লে করতে হলে একটি 'Node' ক্লাস তৈরি করতে হয়।
সার্কুলার লিস্টে ডেটা এলিমেন্টগুলো রিভার্স অর্ডারে ডিসপ্লে করতে আরেকটি মেথড সংজ্ঞায়িত করা যায়, যা ডেটা রিভার্স করবে। এই ক্লাসে দুটি অ্যাট্রিবিউট থাকে: নোডে থাকা ডেটা এবং লিংকড লিস্টের পরবর্তী নোডে অ্যাক্সেস। সার্কুলার লিংকড লিস্টে হেড এবং রিয়ার একে অপরকে স্পর্শ করে। তারা একটি সার্কেল গঠন করে, এবং লাস্ট নোডে 'NULL' ভ্যালু থাকে না।
একটি 'linked_list' ক্লাস তৈরি করতে হয় যাতে একটি ইনিশিয়ালাইজেশন ফাংশন থাকে, এবং নোডের হেড 'None'-এ ইনিশিয়ালাইজ করা হয়।
নিচে ডেমোстран্স্ট্রেশন দেওয়া হলো:
উদাহরণ
class Node:
def __init__(self, my_data):
self.data = my_data
self.next = None
class linked_list:
def __init__(self):
self.head = None
def add_data(self, my_data):
new_node = Node(my_data)
new_node.next = self.head
self.head = new_node
def reverse(self):
prev = None
current = self.head
while current is not None:
next = current.next
current.next = prev
prev = current
current = next
self.head = prev
def print_it(self):
temp = self.head
while temp:
print(temp.data)
temp = temp.next
my_list = linked_list()
my_list.add_data(47)
my_list.add_data(89)
my_list.add_data(34)
my_list.add_data(11)
print("The list is : ")
my_list.print_it()
print("The list is being reversed")
my_list.reverse()
print("The reversed list is : ")
my_list.print_it()
আউটপুট
The list is : 11 34 89 47 The list is being reversed The reversed list is : 47 89 34 11
ব্যাখ্যা
- 'Node' ক্লাস তৈরি করা হয়েছে।
- প্রয়োজনীয় অ্যাট্রিবিউটসহ 'linked_list' ক্লাস তৈরি করা হয়েছে।
- 'add_data' নামে একটি মেথড সংজ্ঞায়িত করা হয়েছে, যা সার্কুলার লিংকড লিস্টে ডেটা যোগ করতে ব্যবহৃত হয়।
- 'reverse' নামে একটি মেথড সংজ্ঞায়িত করা হয়েছে, যা সার্কুলার লিংকড লিস্টে সংরক্ষিত ডেটা রিভার্স করে।
- 'print_it' নামে একটি মেথড সংজ্ঞায়িত করা হয়েছে, যা লিংকড লিস্টের ডেটা কনসোলে ডিসপ্লে করতে ব্যবহৃত হয়।
- 'linked_list' ক্লাসের একটি অবজেক্ট তৈরি করা হয়েছে, এবং ডেটা যোগ করা হয়েছে।
- 'reverse' মেথড ব্যবহার করে এটি রিভার্স করা হয়েছে।
- 'print_it' মেথড ব্যবহার করে কনসোলে এটি ডিসপ্লে করা হয়।