কম্পিউটার

পাইথন প্রোগ্রামটি দ্বিগুণ লিঙ্কযুক্ত তালিকার মাঝখানে থেকে একটি নতুন নোড মুছে ফেলতে পারে


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

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

লিঙ্ক করা তালিকায় নোড যোগ করার জন্য, নোডগুলি প্রদর্শন করতে এবং দ্বিগুণ লিঙ্কযুক্ত তালিকার শেষ থেকে নোড মুছে ফেলার জন্য একাধিক পদ্ধতি ব্যবহারকারী দ্বারা সংজ্ঞায়িত করা হয়।

একটি দ্বিগুণ লিঙ্কযুক্ত তালিকায়, নোডগুলিতে পয়েন্টার রয়েছে। বর্তমান নোডের পরবর্তী নোডের পাশাপাশি আগের নোডের জন্য একটি পয়েন্টার থাকবে। তালিকার শেষ মানটির পরবর্তী পয়েন্টারে 'NULL' মান থাকবে। এটি উভয় দিক দিয়ে অতিক্রম করা যেতে পারে।

নীচে একই −

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

উদাহরণ

ক্লাস নোড:def __init__(self, my_data):self.prev =None self.data =my_data self.next =Noneclass double_list:def __init__(self):self.head =None self.tail =None self.size =0; def add_data(self, my_data):new_node =Node(my_data) if(self.head ==None):self.head =self.tail =new_node; self.head.previous =কোনটিই নয়; self.tail.next =কোনটিই নয়; else:self.tail.next =new_node; new_node.previous =self.tail; self.tail =new_node; self.tail.next =কোনটিই নয়; def print_it(self):curr =self.head if (self.head ==None):print("The list is empty") return print("doubly linked list এর node are :") when curr !=None :print(curr.data) curr =curr.next def delete_from_middle(self):if(self.head ==None):রিটার্ন; else:curr =self.head mid =(self.size//2) if(self.size % 2 ==0) else((self.size+1)//2) রেঞ্জে (1, mid) এর জন্য :curr =curr.next; if(curr ==self.head):self.head =curr.next self.tail.next =None elif(curr ==self.tail):self.tail =self.tail.prev; অন্য:curr.prev.next =curr.next; curr.next.prev =curr.prev; বর্তমান =কোনটিই নয়; self.size =self.size - 1;my_instance =double_list()print("উপাদানগুলি দ্বিগুণ লিঙ্কযুক্ত তালিকায় যোগ করা হচ্ছে")my_instance.add_data(10)my_instance.add_data(24)my_instance.add_data(54)my_instance.add_data(54)my_instance. (77)my_instance.add_data(92)my_instance.print_it()while(my_instance.head !=None):my_instance.delete_from_middle();print("মাঝ থেকে উপাদান মুছে ফেলার পরে তালিকা হল :")my_instance.print_it( );

আউটপুট

দ্বিগুণ লিঙ্কযুক্ত তালিকায় উপাদানগুলি যোগ করা হচ্ছে দ্বিগুণ লিঙ্কযুক্ত তালিকার নোডগুলি হল :1024547792মাঝ থেকে উপাদানটি মুছে ফেলার পরে তালিকাটি হল :দ্বিগুণ লিঙ্কযুক্ত তালিকার নোডগুলি হল :24547792মাঝ থেকে উপাদানটি মুছে ফেলার পরে তালিকা :দ্বিগুণ লিঙ্কযুক্ত তালিকার নোডগুলি হল :547792 মাঝখান থেকে উপাদানটি মুছে ফেলার পরে তালিকাটি হল :দ্বিগুণ লিঙ্কযুক্ত তালিকার নোডগুলি হল :7792 মাঝখান থেকে উপাদানটি মুছে ফেলার পরে তালিকাটি হল :দ্বিগুণ লিঙ্কযুক্ত তালিকার নোডগুলি হল :92 মাঝখান থেকে উপাদান মুছে ফেলার পরে তালিকাটি হল:তালিকাটি খালি

ব্যাখ্যা

  • 'নোড' ক্লাস তৈরি করা হয়েছে।
  • প্রয়োজনীয় বৈশিষ্ট্য সহ আরেকটি ক্লাস তৈরি করা হয়েছে।
  • 'add_data' নামের একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যেটি দ্বিগুণ লিঙ্কযুক্ত তালিকায় ডেটা যোগ করতে ব্যবহৃত হয়।
  • 'print_it' নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা সার্কুলার লিঙ্ক করা তালিকার নোডগুলি প্রদর্শন করে।
  • 'delete_from_middle' নামের আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা মাঝখান থেকে নোডকে মুছে দেয় এবং পূর্ববর্তী নোডটিকে সার্কুলার লিঙ্ক করা তালিকার বর্তমান নোড হিসেবে তৈরি করে।
  • 'ডবল_লিস্ট' ক্লাসের একটি অবজেক্ট তৈরি করা হয়, এবং দ্বিগুণ লিঙ্কযুক্ত তালিকার শুরু থেকে একটি নোড মুছে ফেলার জন্য পদ্ধতিগুলিকে বলা হয়৷
  • একটি 'init' পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যে রুট, হেড, এবং টেইল নোডগুলি দ্বিগুণভাবে লিঙ্কযুক্ত তালিকার সাথে নেই।
  • তালিকাটি পুনরাবৃত্তি করা হয়েছে, এবং লিঙ্ক করা তালিকার মধ্যম সূচী থেকে প্রতিটি নোড খালি না হওয়া পর্যন্ত মুছে ফেলা হয়৷
  • এটি 'print_it' পদ্ধতি ব্যবহার করে কনসোলে প্রদর্শিত হয়।

  1. পাইথন প্রোগ্রাম একটি নতুন নোড মুছে ফেলার শুরু থেকে দ্বিগুণ লিঙ্ক করা তালিকা

  2. পাইথন প্রোগ্রাম একটি টারনারি ট্রি থেকে দ্বিগুণ লিঙ্কযুক্ত তালিকা তৈরি করতে

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

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