যখন একটি গাছের একটি মিরর কপি তৈরি করার প্রয়োজন হয়, এবং এটিকে প্রথম অনুসন্ধান ব্যবহার করে প্রদর্শন করা হয়, তখন একটি বাইনারি ট্রি ক্লাস তৈরি করা হয় পদ্ধতিগুলি দিয়ে মূল উপাদান সেট করা, উপাদানটি বামে সন্নিবেশ করান, উপাদানটি ডানে সন্নিবেশ করানো, একটি নির্দিষ্ট উপাদান অনুসন্ধান করা, এবং পোস্ট অর্ডার ট্রাভার্সাল এবং তাই সঞ্চালন. ক্লাসের একটি উদাহরণ তৈরি করা হয়, এবং এটি পদ্ধতিগুলি অ্যাক্সেস করতে ব্যবহার করা যেতে পারে।
নীচে একই −
এর প্রদর্শন করা হলউদাহরণ
class BinaryTree_struct:def __init__(self, key=None):self.key =key self.left =None self.right =None def set_root(self, key):self.key =key def insert_to_left(self, new_node) ):self.left =new_node def insert_to_right(self, new_node):self.right =new_node def search_elem(self, key):if self.key ==কী:স্বয়ং ফেরত দিন যদি self.left না হয় None:temp =self। left.search_elem(key) যদি temp না হয় কোনটি না:temp রিটার্ন করুন যদি self.right না হয় None:temp =self.right.search_elem(কী) রিটার্ন টেম্প রিটার্ন None def copy_mirror(self):mirror =BinaryTree_struct(self.key) if self.right is not none:mirror.left =self.right.copy_mirror() যদি self.left না হয় কোনটি না:mirror.right =self.left.copy_mirror() return mirror def bfs(self):queue =[self ] while queue !=[]:popped =queue.pop(0) যদি popped.left না হয় None:queue.app end(popped.left) যদি popped.right না হয় None:queue.append(popped.right) print(popped.key, end=' ')my_instance =Noneprint('মেনু (এটি কোন ডুপ্লিকেট কী অনুমান করে না)')প্রিন্ট( 'ঢোকান রুটে') মুদ্রণ ('ঢোকান ') মুদ্রণ ('ঢোকান ডানে ')মুদ্রণ('মিরর')মুদ্রণ ('ত্যাগ') যখন সত্য:my_input =input('আপনি কি অপারেশন করবেন? ').split() অপারেশন =my_input[0].strip().lower() যদি অপারেশন =='insert':data =int(my_input[1]) new_node =BinaryTree_struct(data) suboperation =my_input[2]। strip().lower() if suboperation =='at':my_instance =new_node else:position =my_input[4].strip().lower() key =int(position) ref_node =None যদি my_instance না হয় None:ref_node =my_instance.search_elem(কী) যদি ref_node কোনটি না হয়:print('এমন কোন কী বিদ্যমান নেই..') চালিয়ে যান যদি suboperation =='left':ref_node.insert_to_left(new_node) elif suboperation =='right':ref_node.insert_to_right( new_node) elif অপারেশন =='মিরর':যদি my_instance না হয় কোনটি না:প্রিন্ট ('একটি মিরর কপি তৈরি করা...') মিরর =my_instance.copy_mirror() print('মূল গাছের প্রস্থ প্রথম অনুসন্ধান ট্রাভার্সাল হল :') my_instance.bfs() print() print('The bread মিররের প্রথম ট্রাভার্সাল হল :') mirror.bfs() print() elif অপারেশন =='ছাড়ুন':বিরতি
আউটপুট
মেনু (এটি কোন ডুপ্লিকেট কী অনুমান করে না) ঢোকান রুট ইনসার্টে বাঁদিকে Insert ডানে মিররকিট আপনি কি অপারেশন করবেন? রুট এ 6 সন্নিবেশ করান আপনি কি অপারেশন করবেন? 6 এর বামে 9টি সন্নিবেশ করান আপনি কি অপারেশন করবেন? 6 এর ডানদিকে 4 সন্নিবেশ করান আপনি কি অপারেশন করবেন? মিরর একটি মিরর কপি তৈরি করা হচ্ছে...আসল গাছের প্রস্থ প্রথম অনুসন্ধান ট্রাভার্সাল হল :6 9 4আয়নার প্রস্থ প্রথম ট্রাভার্সাল হল :6 4 9আপনি কি অপারেশন করবেন?প্রস্থান করার জন্য quit() বা Ctrl-D (অর্থাৎ EOF) ব্যবহার করুনপ্রে>ব্যাখ্যা
প্রয়োজনীয় গুণাবলী সহ 'BinaryTree_struct' ক্লাস তৈরি করা হয়েছে।
এটির একটি 'init' ফাংশন রয়েছে যা বাম এবং ডান নোডগুলিকে 'None'-এ বরাদ্দ করতে ব্যবহৃত হয়।
একটি 'set_root' পদ্ধতি সংজ্ঞায়িত করা হয়েছে যা একটি মানকে একটি রুট নোড বরাদ্দ করতে সাহায্য করে৷
এটিতে একটি 'insert_to_left' পদ্ধতি রয়েছে যা গাছের বাম নোডে উপাদান যোগ করতে সাহায্য করে।
এটিতে একটি 'insert_to_right' পদ্ধতি রয়েছে যা গাছের ডান নোডে উপাদান যোগ করতে সাহায্য করে।
এটির একটি 'bfs' পদ্ধতি রয়েছে যা বৃক্ষে প্রথম সার্চ ট্রাভার্সাল করতে সাহায্য করে।
'সার্চ_এলেম' নামের একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা একটি নির্দিষ্ট উপাদান অনুসন্ধানে সহায়তা করে।
এটির একটি 'copy_mirror' পদ্ধতি রয়েছে যা বাইনারি গাছের একটি অনুলিপি তৈরি করতে সাহায্য করে৷
একটি দৃষ্টান্ত তৈরি করা হয়েছে এবং 'কোনটি নয়'-কে বরাদ্দ করা হয়েছে।
যে ক্রিয়াকলাপটি সম্পাদন করা প্রয়োজন তার জন্য ব্যবহারকারীর ইনপুট নেওয়া হয়৷
ব্যবহারকারীর পছন্দের উপর নির্ভর করে, অপারেশন সঞ্চালিত হয়।
প্রাসঙ্গিক আউটপুট কনসোলে প্রদর্শিত হয়।