মডিউল ১৯-২ঃ STL Pair, Node Level (Coding Ninjas)
Last updated
Last updated
আজকে প্রবলেম সল্ভ করার আগে আমরা একটি নতুন STL শিখব। সেটি হলো pair। pair এ একই সাথে যেকোন ডাটা টাইপের দুটি ডাটা জোড়া আকারে রাখা যায়। Syntax: pair<data_type, data_type> pair_name;
Example:
এবার আমরা একটি প্রবলেম সল্ভ করব।
প্রবলেম লিংকঃ
প্রবলেম স্টেটমেন্টঃ একটি বাইনারি ট্রি দেওয়া আছে এবং একটি নোড এর ভেলু দেওয়া আছে। বলতে হবে ঐ নোডের লেভেল কত। এক্ষেত্রে রুট নোডের লেভেল ১ অর্থাৎ লেভেল ১ থেকে শুরু হবে। সল্যুশনঃ আমরা গত মডিউলে দেখে আসা লেভেল অর্ডার ট্রাভারসাল এর কোড ব্যাবহার করে খুব সহজেই এটি করে ফেলতে পারি। এক্ষেত্রে আমরা ইন্টিজার টাইপের কিউ ব্যবহার করতাম লেভেল অর্ডারে নোড স্টোর করার জন্য। এবার আমরা শুধু নোড স্টোর করব না, প্রতিটি নোডের সাথে তার লেভেল ও স্টোর করব। তাই আমরা পেয়ার টাইপের কিউ ব্যবহার করব। একটি পেয়ারে আমরা নোড এবং তার লেভেল রাখব। রুটের লেভেলকে ১ দিয়ে ইনিশিয়াল করে দিব। এরপর প্রতিবার অন্য লেভেলে গেলে লেভেল এর মান ১ করে বাড়িয়ে দিব। এভাবে আমাদের কিউ তে সবগুলো নোডের সাথে সাথে তাদের লেভেল ও স্টোর থাকবে। তারপর যখনি আমরা আমাদের কাঙ্ক্ষিত নোডে চলে আসব, তখন তার লেভেল রিটার্ন করে দিব।