কম্পিউটার

পাইথন প্রোগ্রাম লিঙ্ক করা তালিকা ব্যবহার করে বাইনারি ট্রি বাস্তবায়ন করতে


একটি লিঙ্ক করা তালিকা ব্যবহার করে একটি বাইনারি ট্রি ডেটা স্ট্রাকচার প্রয়োগ করার প্রয়োজন হলে, রুট নোড সেট করার একটি পদ্ধতি, ইন-অর্ডার ট্রাভার্সাল করার একটি পদ্ধতি, রুট নোডের বাম দিকে উপাদান সন্নিবেশ করার জন্য, উপাদান সন্নিবেশ করার একটি পদ্ধতি রুট নোডের ডানদিকে, এবং মান অনুসন্ধান করার একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে।

নীচে একই −

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

উদাহরণ

class BinaryTree_structure:def __init__(self, key=None):self.key =key self.left =None self.right =None def set_root(self, key):self.key =key def in_order_traversal(self):self.left না হলে None:self.left.in_order_traversal() print(self.key, end='') যদি self.right না হয় তাহলে None:self.right.in_order_traversal() def insert_left(self, new_node):self .left =new_node def insert_right(self, new_node):self.right =new_node def search_val(self, key):if self.key ==key:self.left না হলে ফেরত দিন:temp =self.left.search_val (কী) যদি টেম্প না হয় কোনটি:টেম্প রিটার্ন করুন যদি self.right না হয় কোনটি না:temp =self.right.search_val(key) রিটার্ন temp রিটার্ন Nonebtree =Noneprint('মেনু (এটি অনুমান করে না কোন ডুপ্লিকেট কী)')প্রিন্ট(' সন্নিবেশ করুন  root-এ') প্রিন্ট ('ঢোকান  ' এর বাম দিকে) প্রিন্ট ('ঢোকান  ডানে ')মুদ্রণ('quit') যখন True:print('The inorder traversal of binary tree', end=') যদি btree না হয় কোনটি না:btree.in_order_traversal() print() do =input('আপনি কি করতে চান? ').split() অপারেশন =do[0].strip().lower() if operation =='insert':data =int(do[1]) new_node =BinaryTree_structure(data) sub_op =do[2]। strip().lower() if sub_op =='at':btree =new_node else:position =do[4].strip().lower() key =int(position) ref_node =None যদি btree না হয় None:ref_node =btree.search_val(key) যদি ref_node কোনটি না হয়:প্রিন্ট ('এমন কোন কী বিদ্যমান নেই') চালিয়ে যান যদি sub_op =='left':ref_node.insert_left(new_node) elif sub_op =='right':ref_node.insert_right(new_node) elif অপারেশন =='প্রস্থান':বিরতি

আউটপুট

মেনু (এটি কোন ডুপ্লিকেট কী অনুমান করে না)  ঢোকান rootinsert এ  বাঁদিকে ঢোকান  ডানে  ছাড়ুন বাইনারি ট্রির ইনঅর্ডার ট্রাভার্সাল আপনি কি করতে চান? রুট এ 45 সন্নিবেশ করুনবাইনারি ট্রির ইনঅর্ডার ট্রাভার্সাল 45আপনি কি করতে চান? সন্নিবেশ করুন 45 এর বাম 78 বাইনারি ট্রি 78 45 আপনি কি করতে চান? সন্নিবেশ করান 90 ডানদিকে 45বাইনারি ট্রির ইনঅর্ডার ট্রাভার্সাল 78 45 90আপনি কী করতে চান? প্রস্থান করুন 

ব্যাখ্যা

  • 'BinaryTree_structure' ক্লাস তৈরি করা হয়েছে।

  • এটির একটি 'set_root' ফাংশন রয়েছে যা গাছের রুট মান সেট করতে সাহায্য করে।

  • 'in_order_traversal' নামের একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা 'বাম->নোড->ডান' ক্রমে গাছের মধ্য দিয়ে যেতে সাহায্য করে।

  • 'insert_left' নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা মূল মানের বাম দিকে একটি উপাদান যোগ করতে সাহায্য করে।

  • 'insert_right' নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা রুট মানের ডানদিকে একটি উপাদান যোগ করতে সাহায্য করে।

  • 'সার্চ_ভাল' নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা স্ট্যাকের উপরে থেকে একটি মান মুছে ফেলতে সাহায্য করে এবং মুছে ফেলা মান ফিরিয়ে দেয়।

  • চারটি বিকল্প দেওয়া হয়েছে, যেমন 'মূলে ঢোকান', 'বামে সন্নিবেশ করান', 'সামন থেকে ডানে ঢোকান' এবং 'প্রস্থান'।

  • ব্যবহারকারীর ইনপুট/পছন্দের উপর ভিত্তি করে, সংশ্লিষ্ট ক্রিয়াকলাপগুলি সম্পাদিত হয়৷

  • এই আউটপুট কনসোলে প্রদর্শিত হয়৷


  1. পাইথনের একটি প্রদত্ত বাইনারি ট্রিতে একটি লিঙ্কযুক্ত তালিকা উপস্থিত আছে কিনা তা খুঁজে বের করার জন্য প্রোগ্রাম

  2. পাইথন ব্যবহার করে একটি ভুল বাইনারি ট্রি ঠিক করার জন্য প্রোগ্রাম

  3. পাইথনে লিঙ্ক করা তালিকাকে জিগ-জ্যাগ বাইনারি ট্রিতে রূপান্তর করার প্রোগ্রাম

  4. পাইথনে দিকনির্দেশের তালিকা ব্যবহার করে বাইনারি ট্রি অতিক্রম করার প্রোগ্রাম