কম্পিউটার

একটি বাইনারি অনুসন্ধান গাছ ব্যবহার করে সাজানোর জন্য পাইথন প্রোগ্রাম


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

নীচে একই -

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

উদাহরণ

class BinSearchTreeNode:
   def __init__(self, key):
      self.key = key
      self.left = None
      self.right = None
      self.parent = None
   def insert_elem(self, node):
      if self.key > node.key:
         if self.left is None:
            self.left = node
            node.parent = self
         else:
            self.left.insert_elem(node)
      elif self.key <= node.key:
         if self.right is None:
            self.right = node
            node.parent = self
         else:
            self.right.insert_elem(node)

   def inorder_traversal(self):
      if self.left is not None:
         self.left.inorder_traversal()
      print(self.key, end=' ')
      if self.right is not None:
         self.right.inorder_traversal()

class BinSearchTree:
   def __init__(self):
      self.root = None

   def inorder_traversal(self):
      if self.root is not None:
         self.root.inorder_traversal()

   def add_val(self, key):
      new_node = BinSearchTreeNode(key)
      if self.root is None:
         self.root = new_node
      else:
         self.root.insert_elem(new_node)

my_instance = BinSearchTree()

my_list = input('Enter the list of numbers... ').split()
my_list = [int(x) for x in my_list]
for x in my_list:
   my_instance.add_val(x)
print('Sorted list: ')
print(my_instance.inorder_traversal())

আউটপুট

Enter the list of numbers... 67 54 89 0 11 34 99
Sorted list:
0 11 34 54 67 89 99

ব্যাখ্যা

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

  • এটির একটি 'init' ফাংশন রয়েছে যা 'বাম', 'ডান' এবং 'প্যারেন্ট' নোডগুলিকে 'কোনও নয়' বরাদ্দ করতে ব্যবহৃত হয়।

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

  • 'inorder_traversal' নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা গাছে ইনঅর্ডার ট্রাভার্সাল করতে সাহায্য করে।

  • 'BinSearchTree' নামে আরেকটি শ্রেণী সংজ্ঞায়িত করা হয়েছে।

  • এটি রুটকে 'কোনটি নয়' এ সেট করে।

  • এটির একটি পদ্ধতি রয়েছে যার নাম ‘inorder_traversal’ যা গাছে ইনঅর্ডার ট্রাভার্সাল করতে সাহায্য করে।

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

  • 'BinSearchTree'-এর একটি উদাহরণ তৈরি করা হয়েছে।

  • সংখ্যার তালিকা ব্যবহারকারী দ্বারা নেওয়া হয়৷

  • এটি ব্যবহার করে একটি গাছ তৈরি করা হয়।

  • তালিকাটি সাজানো হয়েছে, এবং এর ক্রমানুসারে ট্রাভার্সাল করা হয়।

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


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

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

  3. বাইনারি সন্নিবেশ সাজানোর জন্য পাইথন প্রোগ্রাম

  4. Unitest ব্যবহার করে পাইথন প্রোগ্রামে ইউনিট টেস্টিং