Construct a function that will display a binary tree by leve

Construct a function that will display a binary tree by levels (each level on a separate line). If there is no node at a position in a level, then the function should display NULL. Only levels that contain at least 1 datum should be displayed in c++

Solution

// C++ code level order traversal
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
#include <iomanip>   


using namespace std;


// binary tree nodee
struct node
{
int element;
struct node* l, *r;
};

// determien height of tree
int treeHeight(struct node* rootNode)
{
if (rootNode==NULL)
return 0;
else
{
/* compute the height of each subtree */
int lheight = treeHeight(rootNode->l);
int rheight = treeHeight(rootNode->r);

/* use the larger one */
if (lheight > rheight)
return(lheight+1);
else return(rheight+1);
}
}

// create node
struct node* createNewNode(int element)
{
struct node* newNode = (struct node*)malloc(sizeof(struct node));
newNode->element = element;
newNode->l = NULL;
newNode->r = NULL;

return newNode;
}

// print level
void printTreeLevel(struct node* rootNode, int treeLevel)
{
if (rootNode == NULL)
return;
if (treeLevel == 1)
printf(\"%d \", rootNode->element);
else if (treeLevel > 1)
{
printTreeLevel(rootNode->l, treeLevel-1);
printTreeLevel(rootNode->r, treeLevel-1);
}
}


// print traversal wise
void iterateTreeLevel(struct node* rootNode)
{
int ht = treeHeight(rootNode);
for (int currentHeight=1; currentHeight<=ht; currentHeight++)
{
printf(\"Level:%d => \", currentHeight);
printTreeLevel(rootNode, currentHeight);
printf(\"\ \");
}
}


// driver code
int main()
{
struct node *rootNode = createNewNode(1);
rootNode->l = createNewNode(12);
rootNode->r = createNewNode(22);
rootNode->l->l = createNewNode(54);
rootNode->l->r = createNewNode(5);
rootNode->l->r->l = createNewNode(10);

printf(\"Level Order traversal: \ \");
iterateTreeLevel(rootNode);

return 0;
}

/*
output:

Level Order traversal:
Level:1 => 1
Level:2 => 12 22
Level:3 => 54 5
Level:4 => 10

*/

Construct a function that will display a binary tree by levels (each level on a separate line). If there is no node at a position in a level, then the function
Construct a function that will display a binary tree by levels (each level on a separate line). If there is no node at a position in a level, then the function

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site