কম্পিউটার

পাইথন প্রোগ্রাম একটি গাছ তৈরি করতে এবং সন্নিবেশ, মুছে ফেলা, প্রদর্শন সম্পাদন করতে


যখন এটি একটি বাইনারি ট্রি তৈরি করতে এবং একটি উপাদান সন্নিবেশ করা, একটি উপাদান মুছে ফেলা এবং গাছের উপাদানগুলি প্রদর্শন করার মতো ক্রিয়াকলাপগুলি সম্পাদন করার প্রয়োজন হয়, তখন এটিতে পদ্ধতিগুলি সহ একটি শ্রেণিকে সংজ্ঞায়িত করা হয়। ক্লাসের একটি উদাহরণ সংজ্ঞায়িত করা হয়েছে এবং এটি উপাদানগুলি অ্যাক্সেস করতে এবং ক্রিয়াকলাপ সম্পাদন করতে ব্যবহৃত হয়৷

নীচে একই -

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

উদাহরণ

class Tree_struct:def __init__(self, data=None, parent=None):self.key =data self.children =[] self.parent =parent 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 def remove_node(self):parent =self.parent index =parent.children.index(self) parent.children.remove(self) in reversed(self.children):parent.children .insert(index, child) child.parent =parent def bfs(self):queue =[self] while queue !=[]:popped =queue.pop(0) popped.children এ শিশুর জন্য:queue.append(child ) print(popped.key, end=' ')my_instance =Noneprint('মেনু (এটি কোন ডুপ্লিকেট কী অনুমান করে না)')প্রিন্ট('রুটে <ডেটা> যোগ করুন')প্রিন্ট( ' এর নিচে ' যোগ করুন প্রিন্ট('remove ')print('display')print('quit')যখন True:do =input('আপনি কি করতে চান? ').split() অপারেশন =do[0].strip().lower() যদি অপারেশন =='add':data =int(do[1]) new_node =Tree_struct(data) suboperation =do[2]। strip().lower() if suboperation =='at':my_instance =new_node elif suboperation =='below':position =do[3].strip().lower() key =int(position) ref_node =None if my_instance কোনটি নয়:ref_node =my_instance.search_node(key) যদি ref_node কোনটি না হয়:print('No such key.') continue new_node.parent =ref_node ref_node.add_node(new_node) elif অপারেশন =='remove':data =int (do[1]) to_remove =my_instance.search_node(data) if my_instance ==to_remove:if my_instance.children ==[]:my_instance =অন্য কেউ নয়:leaf =my_instance.children[0] while leaf.children !=[] :leaf =leaf.children[0] leaf.parent.children.remove_node(leaf) পাতা .parent =None leaf.children =my_instance.children my_instance =leaf else:to_remove.remove_node() elif operation =='display':যদি my_instance না হয়:print('Breadth First Search traversal is :', end=' ) my_instance.bfs() print() else:print('গাছ খালি') elif অপারেশন =='ছাড়ুন':বিরতি

আউটপুট

মেনু (এটি কোন ডুপ্লিকেট কী অনুমান করে না)  যোগ করুন rootadd  এর নিচে রিমুভ ডিসপ্লেকুইটআপনি কি করতে চান? রুট এ 5 যোগ করুন আপনি কি করতে চান? 5 এর নিচে 6 যোগ করুন আপনি কি করতে চান? 6 এর নিচে 8 যোগ করুন আপনি কি করতে চান? আপনি কি করতে চান? displayBreadth প্রথম অনুসন্ধান ট্রাভার্সাল হল :5 6আপনি কি করতে চান? প্রস্থান করুন 

ব্যাখ্যা

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

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

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

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

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

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

  • 'bfs' নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা গাছে প্রথম অনুসন্ধান করতে সাহায্য করে।

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

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

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

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


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

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

  3. পাইথনে বাইনারি ট্রি কালারিং গেম

  4. পাইথনে বাইনারি ট্রি ব্যাস