একটি বৃত্তাকার লিঙ্কযুক্ত তালিকায় একটি উপাদান অনুসন্ধান করার প্রয়োজন হলে, একটি 'নোড' শ্রেণী তৈরি করতে হবে। এই ক্লাসে, দুটি বৈশিষ্ট্য রয়েছে, নোডে থাকা ডেটা এবং লিঙ্ক করা তালিকার পরবর্তী নোডে অ্যাক্সেস।
একটি বৃত্তাকার লিঙ্কযুক্ত তালিকায়, মাথা এবং পিছনের অংশ একে অপরের সংলগ্ন। তারা একটি বৃত্ত গঠনের জন্য সংযুক্ত, এবং শেষ নোডে '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 search_value(self,elem_to_search): curr = self.head; i = 1; flag_val = False; if(self.head == None): print("The list is empty"); else: while(True): if(curr.data == elem_to_search): flag_val = True; break; curr = curr.next; i = i + 1; if(curr == self.head): break; if(flag_val): print("The element is present in list at position : " + str(i)); else: print("The element is not present in list"); 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("Value 99 is being searched") my_cl.search_value(99) print("Value 0 is being searched") my_cl.search_value(0)
আউটপুট
Nodes are being added to the list The list is : 21 54 78 99 27 Value 99 is being searched The element is present in list at position : 4 Value 0 is being searched The element is not present in list
ব্যাখ্যা
- 'নোড' ক্লাস তৈরি করা হয়েছে।
- প্রয়োজনীয় বৈশিষ্ট্য সহ আরেকটি ক্লাস তৈরি করা হয়েছে।
- 'অনুসন্ধান_মান' নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যেটি লিঙ্ক করা তালিকায় একটি নির্দিষ্ট উপাদান অনুসন্ধান করতে ব্যবহৃত হয়।
- 'print_it' নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা সার্কুলার লিঙ্ক করা তালিকার নোডগুলি প্রদর্শন করে।
- 'লিস্ট_ক্রিয়েশন' ক্লাসের একটি অবজেক্ট তৈরি করা হয়, এবং ডেটা যোগ করার জন্য পদ্ধতিগুলিকে বলা হয়।
- একটি 'init' পদ্ধতি সংজ্ঞায়িত করা হয়, যে সার্কুলার লিঙ্কের তালিকার প্রথম এবং শেষ নোডগুলি None-এর সাথে।
- 'অনুসন্ধান_মান' পদ্ধতি বলা হয়।
- এটি তালিকার মাধ্যমে পুনরাবৃত্তি করে, এবং যে উপাদানটি অনুসন্ধান করা দরকার তা পাওয়া যায় কিনা তা পরীক্ষা করে।
- যদি এটি পাওয়া যায়, তার সূচী প্রদর্শিত হয়।
- এটি 'print_it' পদ্ধতি ব্যবহার করে কনসোলে প্রদর্শিত হয়।