বৃত্তাকার লিঙ্কযুক্ত তালিকা থেকে সর্বাধিক এবং সর্বনিম্ন নোডের মানগুলি খুঁজে বের করার প্রয়োজন হলে, একটি 'নোড' শ্রেণী তৈরি করতে হবে। এই ক্লাসে, দুটি বৈশিষ্ট্য রয়েছে, নোডে থাকা ডেটা এবং লিঙ্ক করা তালিকার পরবর্তী নোডে অ্যাক্সেস।
একটি বৃত্তাকার লিঙ্কযুক্ত তালিকায়, মাথা এবং পিছনের অংশ একে অপরের সংলগ্ন। তারা একটি বৃত্ত গঠনের জন্য সংযুক্ত, এবং শেষ নোডে '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 find_min_node(self):
curr = self.head;
min_val = self.head.data;
if(self.head == None):
print("The list is empty");
else:
while(True):
if(min_val > curr.data):
min_val = curr.data;
curr= curr.next;
if(curr == self.head):
break;
print("Minimum value node in the list: "+ str(min_val));
def find_max_node(self):
curr = self.head;
max_val = self.head.data;
if(self.head == None):
print("List is empty");
else:
while(True):
if(max_val < curr.data):
max_val = curr.data;
curr= curr.next;
if(curr == self.head):
break;
print("The maximum valueed node is : "+ str(max_val));
class circular_linked_list:
my_cl = list_creation()
print("Values have been added to the list")
my_cl.add_data(11)
my_cl.add_data(52)
my_cl.add_data(36)
my_cl.add_data(74)
my_cl.find_max_node()
my_cl.find_min_node() আউটপুট
Values have been added to the list The maximum valueed node is : 74 Minimum value node in the list: 11
ব্যাখ্যা
- 'নোড' ক্লাস তৈরি করা হয়েছে।
- প্রয়োজনীয় বৈশিষ্ট্য সহ আরেকটি ক্লাস তৈরি করা হয়েছে।
- 'add_data' নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা সার্কুলার লিঙ্ক করা তালিকায় ডেটা যোগ করতে ব্যবহৃত হয়।
- 'find_max_node' নামের আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যেটি তালিকার মাধ্যমে পুনরাবৃত্তি করে এবং একটি নোডে সর্বোচ্চ মান পায়।
- 'ফাইন্ড_মিন_নোড' নামের আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা তালিকার মাধ্যমে পুনরাবৃত্তি করে এবং একটি নোডে সর্বনিম্ন মান পায়।
- 'list_creation' ক্লাসের একটি অবজেক্ট তৈরি করা হয়, এবং ডেটা যোগ করার জন্য পদ্ধতিগুলিকে বলা হয়৷
- একটি 'init' পদ্ধতি সংজ্ঞায়িত করা হয়, যে সার্কুলার লিঙ্কের তালিকার প্রথম এবং শেষ নোডগুলি None-এর সাথে।
- 'ফাইন্ড_ম্যাক্স_নোড' পদ্ধতি এবং 'ফাইন্ড_মিন_নোড' পদ্ধতি বলা হয়।
- এটি লিঙ্ক করা তালিকার নোডগুলির মাধ্যমে পুনরাবৃত্তি করে, তালিকায় সর্বাধিক এবং সর্বনিম্ন মান পায়৷
- এটি কনসোলে প্রদর্শিত হয়৷ ৷