 
  Data Structure Data Structure
 Networking Networking
 RDBMS RDBMS
 Operating System Operating System
 Java Java
 MS Excel MS Excel
 iOS iOS
 HTML HTML
 CSS CSS
 Android Android
 Python Python
 C Programming C Programming
 C++ C++
 C# C#
 MongoDB MongoDB
 MySQL MySQL
 Javascript Javascript
 PHP PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Print the nodes at odd levels of a tree in C++ Programming.
Given the binary tree, the program must print the nodes at odd levels of a tree and the levels of a binary tree start from 1 to n.
As nothing is mentioned one of the two approaches can be implemented i.e. recursion or iteration.
Since we are using a recursive approach, the program will make a recursive call to a function that will be fetching the nodes at odd levels and returning them.

In the above binary tree −
Nodes at level 1: 10 Nodes at level 2: 3 and 211 Nodes at level 3: 140, 162, 100 and 146
So, the nodes at level 1 and level 3 will be printed that means the output will be 10, 140, 162, 100 and 146.
Algorithm
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
Example
#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; } Output
if we run the above program then it will generate the following output
odd nodes are 45 24 85
Advertisements
 