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

 Live Demo

#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
Updated on: 2019-09-04T06:38:59+05:30

165 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements