কম্পিউটার

BFS ট্র্যাভার্সাল ব্যবহার করে একটি গাছের নোড প্রদর্শনের জন্য পাইথন প্রোগ্রাম


যখন ব্রেডথ ফার্স্ট সার্চ ট্রাভার্সাল ব্যবহার করে একটি গাছের নোডগুলি প্রদর্শন করার প্রয়োজন হয়, তখন একটি ক্লাস তৈরি করা হয় এবং এতে রুট নোড সেট করার পদ্ধতি রয়েছে, গাছে উপাদান যুক্ত করা, একটি নির্দিষ্ট উপাদান অনুসন্ধান করা, 'bfs' সম্পাদন করা ( প্রস্থ প্রথম অনুসন্ধান) এবং তাই। এই পদ্ধতিগুলি অ্যাক্সেস এবং ব্যবহার করার জন্য ক্লাসের একটি উদাহরণ তৈরি করা যেতে পারে।

নীচে একই -

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

উদাহরণ

class Tree_struct:def __init__(self, data=None):self.key =data self.children =[] def set_root(self, data):self.key =data def add_node(self, node):self. Children.append(node) def search_node(self, key):if self.key ==কী:self.children-এ সন্তানের জন্য স্বয়ং রিটার্ন করুন:temp =child.search_node(key) যদি temp না হয় None:রিটার্ন temp রিটার্ন None def bfs_operation(self):queue =[self] while queue !=[]:popped =queue.pop(0) popped.children-এ শিশুর জন্য:queue.append(child) print(popped.key, end='')my_instance =Noneprint('মেনু (ধরে নিন কোন ডুপ্লিকেট কী)')মুদ্রণ('রুটে <ডেটা> যোগ করুন')মুদ্রণ('অ্যাড <ডেটা> নীচে <ডেটা>')মুদ্রণ('bfs')মুদ্রণ('quit') যখন সত্য:my_input =input('আপনি কি অপারেশন করবেন?').split() অপারেশন =my_input[0].strip().lower() if operation =='add':data =int(my_input[1]) new_node =Tree_struct(data) suboperation =my_in put[2].strip().lower() if suboperation =='at':my_instance =new_node elif suboperation =='below':position =my_input[3].strip().lower() key =int(position) ) ref_node =কোনটিই নয় যদি my_instance না হয় কোনটি না:ref_node =my_instance.search_node(key) যদি ref_node না হয়:print('No such key') continue ref_node.add_node(new_node) elif অপারেশন =='bfs':যদি my_instance N হয় :print('গাছ খালি') else:print('Breadth First Search traversal is :', end=') my_instance.bfs_operation() print() elif অপারেশন =='ছাড়ুন':বিরতি

আউটপুট

মেনু (মানে নেই কোন ডুপ্লিকেট কী)  যোগ করুন rootadd  এর নিচে bfsquit আপনি কি অপারেশন করবেন? রুট এ 6 যোগ করুন আপনি কি অপারেশন করবেন? 6 এর নিচে 4 যোগ করুন আপনি কি অপারেশন করবেন? 4 এর নিচে 9 যোগ করুন আপনি কি অপারেশন করবেন? bfsBreadth ফার্স্ট সার্চ ট্রাভার্সাল হল :6 4 9আপনি কি অপারেশন করবেন? প্রস্থান করুন 

ব্যাখ্যা

  • প্রয়োজনীয় গুণাবলী সহ 'Tree_struct' ক্লাস তৈরি করা হয়েছে।

  • এটির একটি 'init' ফাংশন রয়েছে যা একটি খালি তালিকা তৈরি করতে ব্যবহৃত হয়৷

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

  • এটিতে একটি 'add_node' পদ্ধতি রয়েছে যা গাছে উপাদান যোগ করতে সাহায্য করে।

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

  • 'bfs_operation' নামের একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা গাছে প্রথম সার্চ ট্রাভার্সাল করতে সাহায্য করে।

  • একটি দৃষ্টান্ত তৈরি করা হয়েছে এবং 'কোনটি নয়'-কে বরাদ্দ করা হয়েছে।

  • যে ক্রিয়াকলাপটি সম্পাদন করা প্রয়োজন তার জন্য ব্যবহারকারীর ইনপুট নেওয়া হয়৷

  • ব্যবহারকারীর পছন্দের উপর নির্ভর করে, অপারেশন সঞ্চালিত হয়।

  • প্রাসঙ্গিক আউটপুট কনসোলে প্রদর্শিত হয়।


  1. পাইথন ব্যবহার করে প্রদত্ত নোডের একটি বাইনারি গাছের সর্বনিম্ন সাধারণ পূর্বপুরুষ খুঁজে বের করার প্রোগ্রাম

  2. পাইথন ব্যবহার করে একটি বাইনারি গাছের মূল পরিবর্তন করার জন্য প্রোগ্রাম

  3. পাইথন ব্যবহার করে বাইনারি ট্রিতে ডানদিকে নোড খুঁজে বের করার জন্য প্রোগ্রাম

  4. পাইথন ব্যবহার করে একই লেবেল সহ সাব-ট্রিতে নোডের সংখ্যা খুঁজে বের করার প্রোগ্রাম