যখন একটি বৃত্তাকার লিঙ্কযুক্ত তালিকার উপাদানগুলিকে সাজানোর প্রয়োজন হয়, তখন একটি 'নোড' শ্রেণী তৈরি করতে হবে। এই ক্লাসে, দুটি বৈশিষ্ট্য রয়েছে, নোডে থাকা ডেটা এবং লিঙ্ক করা তালিকার পরবর্তী নোডে অ্যাক্সেস।
একটি বৃত্তাকার লিঙ্কযুক্ত তালিকায়, মাথা এবং পিছনের অংশ একে অপরের সংলগ্ন। তারা একটি বৃত্ত গঠনের জন্য সংযুক্ত, এবং শেষ নোডে 'NULL' মান নেই৷
আরেকটি 'লিঙ্কড_লিস্ট' ক্লাস তৈরি করতে হবে যার একটি ইনিশিয়ালাইজেশন ফাংশন থাকবে, এবং নোডের হেডটি 'কোনও নয়'-এ আরম্ভ করা হবে।
লিঙ্ক করা তালিকায় নোড যোগ করার জন্য, লিঙ্ক করা তালিকাকে ঊর্ধ্বমুখী বা অবরোহী ক্রমে সাজাতে এবং নোডের মান প্রিন্ট করার জন্য একাধিক পদ্ধতি ব্যবহারকারী দ্বারা সংজ্ঞায়িত করা হয়।
নীচে একই −
এর জন্য একটি প্রদর্শন রয়েছে৷উদাহরণ
class Node:
def __init__(self,data):
self.data = data
self.next = None
class list_creation:
def __init__(self):
self.head = Node(None)
self.tail = Node(None)
self.head.next = self.tail
self.tail.next = self.head
def add_data(self,my_data):
new_node = Node(my_data)
if self.head.data is None:
self.head = new_node
self.tail = new_node
new_node.next = self.head
else:
self.tail.next = new_node
self.tail = new_node
self.tail.next = self.head
def sort_list(self):
curr = self.head
if(self.head == None):
print("The list is empty")
else:
while(True):
index_val = curr.next
while(index_val != self.head):
if(curr.data > index_val.data):
temp = curr.data
curr.data = index_val.data
index_val.data = temp
index_val = index_val.next
curr =curr.next
if(curr.next == self.head):
break;
def print_it(self):
curr = self.head
if self.head is None:
print("The list is empty");
return;
else:
print(curr.data)
while(curr.next != self.head):
curr = curr.next
print(curr.data)
print("\n")
class circular_linked_list:
my_cl = list_creation()
print("Nodes are being added to the list")
my_cl.add_data(21)
my_cl.add_data(54)
my_cl.add_data(78)
my_cl.add_data(99)
my_cl.add_data(27)
print("The list is :")
my_cl.print_it()
print("The list is being sorted")
my_cl.sort_list()
print("The sorted list is : ")
my_cl.print_it() আউটপুট
Nodes are being added to the list The list is : 21 54 78 99 27 The list is being sorted The sorted list is : 21 27 54 78 99
ব্যাখ্যা
- 'নোড' ক্লাস তৈরি করা হয়েছে।
- প্রয়োজনীয় বৈশিষ্ট্য সহ আরেকটি ক্লাস তৈরি করা হয়েছে।
- 'sort_list' নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যেটি বৃত্তাকার লিঙ্কযুক্ত তালিকার উপাদানগুলিকে আরোহী বা অবরোহ ক্রমে সাজাতে ব্যবহৃত হয়।
- 'print_it' নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা সার্কুলার লিঙ্ক করা তালিকার নোডগুলি প্রদর্শন করে।
- 'লিস্ট_ক্রিয়েশন' ক্লাসের একটি অবজেক্ট তৈরি করা হয়, এবং ডেটা যোগ করার জন্য পদ্ধতিগুলিকে বলা হয়।
- একটি 'init' পদ্ধতিকে সংজ্ঞায়িত করা হয়, যে সার্কুলার লিঙ্কের তালিকার প্রথম এবং শেষ নোডগুলি None-এর সাথে।
- 'sort_list' পদ্ধতিকে বলা হয়।
- এটি তালিকার মাধ্যমে পুনরাবৃত্তি করে এবং মানের উপর ভিত্তি করে উপাদানগুলিকে তাদের প্রাসঙ্গিক অবস্থানে রাখে।
- এটি 'print_it' পদ্ধতি ব্যবহার করে কনসোলে প্রদর্শিত হয়।