কম্পিউটার

একটি গাছে পাতার নোডের সংখ্যা গণনা করার জন্য পাইথন প্রোগ্রাম


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

নীচে একই -

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

উদাহরণ

ক্লাস ট্রি_স্ট্রাকচার:def __init__(self, data=None):self.key =data self.children =[] def set_root_node(self, data):self.key =data def add_vals(self, node):self. Children.append(node) def search_val(self, key):if self.key ==কী:self.children-এ সন্তানের জন্য স্বয়ং রিটার্ন করুন:temp =child.search(key) যদি temp না হয় None:রিটার্ন temp রিটার্ন None def count_leaf_node(self):leaf_nodes =[] self.count_leaf_node_helper_fun(leaf_nodes) রিটার্ন len(leaf_nodes) def count_leaf_node_helper_fun(self, leaf_nodes):if self.children ==[]:leaf_nodes.self else:(self-এর জন্য). শিশু:child.count_leaf_node_helper_fun(leaf_nodes)tree =Noneprint('মেনু (এটি কোন ডুপ্লিকেট কী অনুমান করে না)')মুদ্রণ('রুটে <ডেটা> যোগ করুন')প্রিন্ট('অ্যাড <ডেটা> নীচে <ডেটা>')প্রিন্ট(' গণনা')মুদ্রণ('প্রস্থান')যখন সত্য:my_input =ইনপুট('আপনি কোন অপারেশন করতে চান?').split() অপারেশন =my_input[0].strip().lower() যদি অপারেশন =='add':data =int(my_input[1]) newNode =Tree_structure(data) sub_op =my_input[2].strip().lower( ) if sub_op =='at':tree =newNode elif sub_op =='নীচে':my_pos =my_input[3].strip().lower() key =int(my_pos) ref_node =None যদি গাছ না হয় None:ref_node =tree.search_val(key) যদি ref_node কোনটি না হয়:print('No such key.') continue ref_node.add_vals(newNode) elif অপারেশন =='গণনা':যদি গাছটি না হয়:প্রিন্ট ('গাছ খালি') else:count =tree.count_leaf_node() print('লিফ নোডের সংখ্যা হল :{}'.format(count)) elif অপারেশন =='quit':break

আউটপুট

মেনু (এটি কোন ডুপ্লিকেট কী অনুমান করে না)  যোগ করুন rootadd  এর নিচে countquitআপনি কোন অপারেশন করতে চান? root-এ 78 যোগ করুন আপনি কোন অপারেশন করতে চান? 78 এর নিচে 90 যোগ করুন আপনি কোন অপারেশন করতে চান? 78 এর নিচে 8 যোগ করুন আপনি কোন অপারেশন করতে চান? লিফ নোডের সংখ্যা হল:2 আপনি কোন অপারেশন করতে চান? প্রস্থান করুন 

ব্যাখ্যা

  • 'বৃক্ষ_কাঠামো' শ্রেণী তৈরি করা হয়েছে।

  • এটি 'কী' কে সত্যে সেট করে এবং গাছের বাচ্চাদের জন্য একটি খালি তালিকা সেট করে।

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

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

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

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

  • 'count_leaf_nodes_helper' নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা পূর্বে সংজ্ঞায়িত ফাংশনকে কল করে- এটি একটি পুনরাবৃত্ত ফাংশন।

  • চারটি বিকল্প দেওয়া হয়েছে, যেমন 'রুটে যোগ করুন', 'নিচে যোগ করুন', 'গণনা' এবং 'ত্যাগ করুন'৷

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

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


  1. পাইথনে একটি ট্রি নোডের Kth পূর্বপুরুষ খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে একটি এন-আরি গাছের ব্যাস খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে একটি এন-আরি গাছের একটি অনুলিপি তৈরি করার প্রোগ্রাম

  4. একটি প্রদত্ত এক্সপ্রেশনের একটি এক্সপ্রেশন ট্রি তৈরি করতে পাইথন প্রোগ্রাম