কম্পিউটার

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


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

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

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

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

নীচে একই −

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

উদাহরণ

ক্লাস নোড:def __init__(self, my_data):self.previous =None self.data =my_data self.next =Noneclass double_list:def __init__(self):self.head =None self.tail =None def add_data( self, my_data):new_node =Node(my_data) if(self.head ==None):self.head =self.tail =new_node self.head.previous =None self.tail.next =অন্য কেউ নয়:self.tail। পরবর্তী =new_node new_node.previous =self.tail self.tail =new_node self.tail.next =None def print_it(self):curr =self.head if (self.head ==None):print("লিস্ট খালি ") রিটার্ন প্রিন্ট ("ডাবললি লিঙ্কযুক্ত তালিকার নোডগুলি হল :") যখন curr !=None:print(curr.data) curr =curr.next def search_node(self, val_to_search):i =1; flag_val =মিথ্যা; curr =self.head; if(self.head ==None):print("লিস্ট খালি") রিটার্ন করার সময়(curr!=None):if(curr.data ==val_to_search):flag_val =True break curr =curr.next i =i + 1 if(flag_val):print("নোডটি অবস্থানে তালিকায় উপস্থিত রয়েছে :") print(i) else:print("নোডটি তালিকায় উপস্থিত নেই")my_instance =double_list()print("Elements) দ্বৈতভাবে লিঙ্ক করা তালিকায় যোগ করা হচ্ছে )print("উপাদান 77 অনুসন্ধান করা হচ্ছে...")my_instance.search_node(77)print("উপাদান 7 অনুসন্ধান করা হচ্ছে...")my_instance.search_node(7)

আউটপুট

দ্বিগুণ লিঙ্কযুক্ত তালিকায় উপাদানগুলি যোগ করা হচ্ছে দ্বিগুণ লিঙ্কযুক্ত তালিকার নোডগুলি হল :10245477240 উপাদান 77 অনুসন্ধান করা হচ্ছে...নোডটি তালিকায় অবস্থানে রয়েছে :4 উপাদান 7 অনুসন্ধান করা হচ্ছে...নোডটি তালিকায় উপস্থিত নেই

ব্যাখ্যা

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

  1. পাইথন প্রোগ্রাম n নোডের দ্বিগুণ লিঙ্কযুক্ত তালিকা তৈরি করে এবং নোডের সংখ্যা গণনা করে

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

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

  4. পাইথন প্রোগ্রামে রৈখিক অনুসন্ধান