কম্পিউটার

বৃত্তাকার লিঙ্কযুক্ত তালিকা থেকে সর্বাধিক এবং সর্বনিম্ন মান নোড খুঁজে পেতে পাইথন প্রোগ্রাম


বৃত্তাকার লিঙ্কযুক্ত তালিকা থেকে সর্বাধিক এবং সর্বনিম্ন নোডের মানগুলি খুঁজে বের করার প্রয়োজন হলে, একটি 'নোড' শ্রেণী তৈরি করতে হবে। এই ক্লাসে, দুটি বৈশিষ্ট্য রয়েছে, নোডে থাকা ডেটা এবং লিঙ্ক করা তালিকার পরবর্তী নোডে অ্যাক্সেস।

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

  1. পাইথনে সাব-ট্রির নোড মানের সমষ্টি থেকে ন্যূনতম মান বের করার প্রোগ্রাম

  2. পাইথনে লিঙ্ক করা তালিকার K-তম নোড খুঁজে বের করার জন্য প্রোগ্রাম

  3. পাইথনে এককভাবে লিঙ্ক করা তালিকার মাঝের নোড খুঁজে বের করার জন্য প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি তালিকায় সর্বাধিক এবং সর্বনিম্ন উপাদানের অবস্থান খুঁজে পেতে?