যখন একটি বৃত্তাকার লিঙ্কযুক্ত তালিকার উপাদানগুলিকে সাজানোর প্রয়োজন হয়, তখন একটি 'নোড' শ্রেণী তৈরি করতে হবে। এই ক্লাসে, দুটি বৈশিষ্ট্য রয়েছে, নোডে থাকা ডেটা এবং লিঙ্ক করা তালিকার পরবর্তী নোডে অ্যাক্সেস।
একটি বৃত্তাকার লিঙ্কযুক্ত তালিকায়, মাথা এবং পিছনের অংশ একে অপরের সংলগ্ন। তারা একটি বৃত্ত গঠনের জন্য সংযুক্ত, এবং শেষ নোডে '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' পদ্ধতি ব্যবহার করে কনসোলে প্রদর্শিত হয়।