কম্পিউটার

C++ এ বাইনারি গাছের সমস্ত লিফ নোডের পণ্য


নোড সমন্বিত একটি বাইনারি গাছ দিয়ে দেওয়া হয়েছে এবং কাজটি হল একটি প্রদত্ত বাইনারি গাছের সমস্ত পাতার নোডের গুণফল খুঁজে বের করা৷

লিফ নোড হল শেষ নোড যার কোনো সন্তান নেই। একটি গাছে, একটি নোড একটি প্যারেন্ট নোড বা চাইল্ড নোড হিসাবে কাজ করতে পারে রুট নোড ছাড়া যা শুধুমাত্র একটি প্যারেন্ট নোড হতে পারে। সুতরাং NULL হিসাবে ডান এবং বাম পয়েন্টার সহ নোডগুলি হল লিফ নোড৷

ইনপুট

C++ এ বাইনারি গাছের সমস্ত লিফ নোডের পণ্য

আউটপুট

লিফ নোডগুলি হল -:23, 34, 25 পণ্য-:23*34*25 =19550

পন্থা

  • নোড ডেটা ইনপুট করুন

  • রুট নোড থেকে শুরু করে সমস্ত নোড অতিক্রম করুন এবং ট্রাভার্সালের জন্য বাম সাব ডিরেক্টরি বা ডান সাবডিরেক্টরিতে যান৷

  • পণ্যটি খুঁজে পেতে একটি অস্থায়ী ভেরিয়েবলে NULL থাকা ডান এবং বাম পয়েন্টার সহ সেই নোডগুলি সংরক্ষণ করুন৷

  • গুণিত মান ধারণ করে একটি অস্থায়ী পরিবর্তনশীলের মান প্রিন্ট করুন।

অ্যালগরিদম

StartStep 1 → একটি নোডের গঠন তৈরি করুন এবং টেম্প, পরবর্তী এবং একটি স্ট্রাকচার নোডের পয়েন্টার হিসেবে হেড করুন স্ট্রাকচার নোড int ডেটা নোড তৈরি করুন *বাম, *ডানে শেষ ধাপ 2 → একটি ট্রি নোডে একটি নোড সন্নিবেশ করার ফাংশন ঘোষণা করুন* new_node( int ডেটা) সেট নোড* টেম্প =নতুন নোড() সেট টেম্প→ডেটা =ডেটা সেট টেম্প→লেফ্ট =টেম্প→রাইট =শূন্য রিটার্ন টেম্প শেষ ধাপ 3 → সমস্ত লিফ নোডের পণ্য খুঁজে বের করার জন্য একটি ফাংশন ঘোষণা করুন void leaf(node* root) , int &product) IF (!root) Return End IF (!root→left &&!root→right) সেট পণ্য *=root→data কল লিফ(রুট→বাম, পণ্য) কল লিফ(রুট→ডান, পণ্য) ধাপ 4 → main() ক্রিয়েট নোড* রুট =new_node(10) Set root→left =new_node(20) Set root→left→left =new_node(30) Set int পণ্য =1 কল লিফ(রুট, পণ্য) প্রদর্শন পণ্যস্টপ 

উদাহরণ

#include Namespace std;//nodestruct node এর স্ট্রাকচার ব্যবহার করে{int data; নোড *বাম, *ডান;};// একটি ট্রিনোডের একটি নতুন পাতা তৈরি করতে ফাংশন* new_node(int data){ node* temp =new node(); temp→ডেটা =ডেটা; temp→left =temp→right =NULL; একটি ট্রিভয়েড পাতার সমস্ত লিফ নোডের গুণফল খুঁজে বের করতে টেম্প;}//ফাংশন (নোড* রুট, int এবং পণ্য){ if (!root) রিটার্ন; যদি (!root→left &&!root->ডান) পণ্য *=root→ডেটা; পাতা (মূল→বাম, পণ্য); পাতা(রুট→ডান, পণ্য);}int main(){ node* root =new_node(10); root→left =new_node(20); root→left→left =new_node(30); root→left→right =new_node(40); root→right =new_node(50); root→right→right =new_node(60); root→right→left =new_node(70); int পণ্য =1; পাতা (মূল, পণ্য); cout<<"একটি লিফ নোডের পণ্য হল :"<<পণ্য; রিটার্ন 0;

আউটপুট

উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
একটি লিফ নোডের পণ্য হল :5040000

  1. C++-এ K পাতা সহ একটি বাইনারি ট্রিতে সমস্ত নোড প্রিন্ট করুন

  2. C++ এ বাইনারি সার্চ ট্রির সমস্ত বিজোড় নোড প্রিন্ট করুন

  3. C++ এ প্রদত্ত নিখুঁত বাইনারি গাছের সমস্ত নোডের সমষ্টি খুঁজুন

  4. C++ প্রোগ্রামিং-এ একটি বাইনারি ট্রিতে সমস্ত নোডের লেভেল প্রিন্ট করুন।