মডিউল ১৮-৭ঃGet the Maximum Height of a Binary Tree
গত মডিউল গুলোতে আমরা দেখেছি কিভাবে Recursion এর সাহায্যে কোনো বাইনারী ট্রি এর Node এর কাউন্ট , কয়টি Leaf Node আছে তার কাউন্ট বের করা শিখেছি। Guess what ? এই প্রবলেম সল্ভ করার জন্য ও আমরা ঠিক একই ভাবে Recursive ওয়ে তে চিন্তা করে খুব সহজে সমস্যাটি সমাধান করে নিতে পারবো।
প্রথমে জেনে নেয়া যাক , কোনো একটি Binary Tree এর Maximum height কাকে বলে।
Root হতে সবচেয়ে দূরের Node এর মাঝে যত সংখ্যক Node আছে তাকে ঐ Binary Tree এর Maximum Node বলা হয়ে থাকে।
এখন দেখে নেয়া যাক , কীভাবে আমরা Recursive ওয়ে তে প্রবলেম টি চিন্তা করতে পারি
আমরা এমন একটি ফাংশন তৈরি করবো যেখানে আমরা একটি Binary Tree এর Root Node পাস করলে , ঐ ফাংশন টি আমাদের ঐ Binary Tree এর Maximum Height টি বের করে দিবে। এখন আমাদের কাজ হবে ঠিক ভাবে এই ভাবনা টা কে কাজে লাগানো এবং একটি Proper base case সেট করা
প্রথমত , আমরা যদি Binary Tree এর Node টি ফাংশনে পাস করি , এবং Root যদি নিজেই Null হয় তবে আমরা বলতে পারি এই Binary Tree তে কোনো Node নেই , এবং এই Binary Tree এর Maximum Height। এক্ষেত্রে ০ রিটার্ন হবে। ( Base Case )
যদি উপরের কোনোটি সত্যি না হয় তবে দেখার বিষয় হলো তার Left Subtree এর Maximum Height কত এবং তার Right Subtree তে Maximum Height কত ।
যেহেতু আমরা আমাদের ফাংশন কে এমন ভাবে ডিজাইন করেছি , তাকে একটি Root Node দেয়া হলে সে আমাকে ঐ Binary Tree এর Maximum Height কত তা বের করে দিবে , তাই আমরা নতুন করে আর ফাংশন না লিখে Left subtree এর Root Node একই ফাংশনে pass করে ঐ Subtree এর Maximum Height বের করে নিতে পারবো। এক্ষেত্রে Left subtree এর Root যা হলো Main Root এর Left child টি থেকে যে Tree উৎপন্ন হয়েছে , তাকে আমরা একটি Subtree বলতেছি .
Right subtree এর Maximum Height কতো তা বের করার জন্য আমরা একইভাবে আমাদের কাউন্ট করার ফাংশনটির হেল্প নিবো এবং তাকে Right subtree এর Root Node টি পাস করলে আমরা ঐ Subtree এর Maximum Height টি বের করে দিবে । এক্ষেত্রে Right subtree এর Root যা আসলে Main Root এর Right child টি থেকে যে Tree উৎপন্ন হয়েছে , তাকে আমরা একটি Subtree বলতেছি .
সবশেষে যেহেতু আমাকে Maximum Height টি বের করতে হবে , আমি Left subtree এর Maximum Height এবং Right subtree এর Maximum Height টি কম্পেয়ার করে দেখবো কোনটি Maximum তার সাথে ১ যোগ করে তা রিটার্ন করবো। ১ যোগ করার কারণে Root Node এর জন্য পুরো Tree এর Maximum Height এ একটি Node বাড়বে।
আসেন এইবার কোডটি দেখে নেয়া যাক Code:
Last updated