বাইনারি ট্রি দেওয়া হলে, প্রোগ্রামটিকে অবশ্যই একটি গাছের বিজোড় স্তরে নোডগুলি প্রিন্ট করতে হবে এবং একটি বাইনারি গাছের স্তরগুলি 1 থেকে n থেকে শুরু হবে৷
যেহেতু কিছুই উল্লেখ করা হয়নি, দুটি পদ্ধতির একটি প্রয়োগ করা যেতে পারে যেমন পুনরাবৃত্তি বা পুনরাবৃত্তি।
যেহেতু আমরা একটি পুনরাবৃত্ত পদ্ধতি ব্যবহার করছি, তাই প্রোগ্রামটি এমন একটি ফাংশনে একটি পুনরাবৃত্ত কল করবে যা বিজোড় স্তরে নোডগুলি নিয়ে আসবে এবং সেগুলি ফিরিয়ে দেবে৷
উপরের বাইনারি গাছে -
Nodes at level 1: 10 Nodes at level 2: 3 and 211 Nodes at level 3: 140, 162, 100 and 146
সুতরাং, লেভেল 1 এবং লেভেল 3 এ নোডগুলি প্রিন্ট করা হবে যার মানে আউটপুট হবে 10, 140, 162, 100 এবং 146৷
অ্যালগরিদম
START Step 1 -> create a structure of a node as struct Node struct node *left, *right int data End Step 2 -> function to create a node node* newnode(int data) node->data = data node->left = node->right = NULL; return (node) step 3 -> create function for finding the odd nodes void odd(Node *root, bool ifodd = true) IF root = NULL Return End if (ifodd) print root->data End odd(root->left, !ifodd) odd(root->right, !ifodd) step 4 -> In main() Create tree using Node* root = newnode(45) root->left = newnode(23) Call odd(root) Stop
উদাহরণ
#include <bits/stdc++.h> using namespace std; struct Node{ int data; Node* left, *right; }; void odd(Node *root, bool ifodd = true){ if (root == NULL) return; if (ifodd) cout << root->data << " " ; odd(root->left, !ifodd); odd(root->right, !ifodd); } // function to create a new node Node* newnode(int data){ Node* node = new Node; node->data = data; node->left = node->right = NULL; return (node); } int main(){ Node* root = newnode(45); root->left = newnode(23); root->right = newnode(13); root->left->left = newnode(24); root->left->right = newnode(85); cout<<"\nodd nodes are "; odd(root); return 0; }
আউটপুট
যদি আমরা উপরের প্রোগ্রামটি চালাই তাহলে এটি নিম্নলিখিত আউটপুট তৈরি করবে
odd nodes are 45 24 85