কম্পিউটার

সার্কুলার লিঙ্কড লিস্টের শেষ থেকে একটি নোড মুছে ফেলার জন্য পাইথন প্রোগ্রাম


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

একটি বৃত্তাকার লিঙ্কযুক্ত তালিকায়, মাথা এবং পিছনের অংশ একে অপরের সংলগ্ন। তারা একটি বৃত্ত গঠনের জন্য সংযুক্ত, এবং শেষ নোডে 'NULL' মান নেই৷

আরেকটি 'লিঙ্কড_লিস্ট' ক্লাস তৈরি করতে হবে যার একটি ইনিশিয়ালাইজেশন ফাংশন থাকবে, এবং নোডের হেডটি 'কোনও নয়' এ আরম্ভ করা হবে।

নীচে একই −

এর জন্য একটি প্রদর্শন রয়েছে৷

উদাহরণ

class Node:  
   def __init__(self,data):  
      self.data = data;  
      self.next = None;  
   
class linked_list:  
   def __init__(self):  
      self.head = Node(None);  
      self.tail = Node(None);  
      self.head.next = self.tail;  
      self.tail.next = self.head;  
     
   def add_value(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 delete_from_end(self):  
      if(self.head == None):  
         return;  
      else:  
         if(self.head != self.tail ):  
            curr = self.head;              
            while(curr.next != self.tail):  
               curr = curr.next;  
            self.tail = curr;  
            self.tail.next = self.head;  
         
         else:  
            self.head = self.tail = None;  
           
   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_list:  
   my_cl = linked_list();  
   my_cl.add_value(11);  
   my_cl.add_value(32);  
   my_cl.add_value(43);  
   my_cl.add_value(57);  

   print("The original list is :");  
   my_cl.print_it();  
   while(my_cl.head != None):  
      my_cl.delete_from_end();  
      print("The list after deletion is :");  
      my_cl.print_it();   

আউটপুট

The original list is :
11
32
43
57
The list after deletion is :
11
32
43
The list after deletion is :
11
32
The list after deletion is :
11
The list after deletion is :
The list is empty

ব্যাখ্যা

  • 'নোড' ক্লাস তৈরি করা হয়েছে।
  • প্রয়োজনীয় বৈশিষ্ট্য সহ আরেকটি 'লিঙ্কড_লিস্ট' ক্লাস তৈরি করা হয়েছে।
  • 'add_data' নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা সার্কুলার লিঙ্ক করা তালিকায় ডেটা যোগ করতে ব্যবহৃত হয়।
  • 'delete_from_end' নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যেটি রেফারেন্স মুছে ফেলার মাধ্যমে একের পর এক উপাদান মুছে দেয়।
  • 'print_it' নামের আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে যা কনসোলে লিঙ্ক করা তালিকার ডেটা প্রদর্শন করতে ব্যবহৃত হয়।
  • 'লিঙ্কড_লিস্ট' ক্লাসের একটি অবজেক্ট তৈরি করা হয়, এবং ডেটা যোগ করার জন্য পদ্ধতিগুলিকে বলা হয়।
  • এটি 'print_it' পদ্ধতি ব্যবহার করে কনসোলে প্রদর্শিত হয়।

  1. সি প্রোগ্রামে একটি লিঙ্কযুক্ত তালিকার শেষ থেকে n'th নোডের জন্য প্রোগ্রাম

  2. পাইথনে লিঙ্ক করা তালিকা থেকে m নোডের পরে n নোড মুছে ফেলার প্রোগ্রাম

  3. বৃত্তাকার লিঙ্কযুক্ত তালিকায় একটি উপাদান অনুসন্ধান করতে পাইথন প্রোগ্রাম

  4. পাইথনে লিঙ্কযুক্ত তালিকায় নোড মুছুন