You are on page 1of 4

CSE2003: Data Structure and Algorithm

Binary Tree:-

Team Members: -
Riwaz Udas (19BCE2532)
Pranav Kumar Jha (19BCE2579)
#include <stdio.h>
#include<stdlib.h>
struct Node
{
int data;
struct Node* left, * right;
};

struct Node* newNode(int data)


{
struct Node* node = (struct Node*)malloc(sizeof(struct Node));
node->data = data;
node->left = node->right = NULL;
return (node);
}

struct Node* insertLevelOrder(int arr[], struct Node* root, int i, int n)


{

if (i < n)
{
struct Node* temp = newNode(arr[i]);
root = temp;

root->left = insertLevelOrder(arr, root->left, 2 * i + 1, n);

root->right = insertLevelOrder(arr,root->right, 2 * i + 2, n);


}
return root;
}

void inOrder(struct Node* root)


{

if (root != NULL)
{

inOrder(root->left);
printf("%d\n", root->data);
inOrder(root->right);
}
}
void preOrder(struct Node* root)
{

if (root != NULL)
{

printf("%d\n", root->data);
preOrder(root->left);
preOrder(root->right);
}
}
void postOrder(struct Node* root)
{

if (root != NULL)
{

postOrder(root->left);
postOrder(root->right);
printf("%d\n", root->data);
}
}

int main()
{
int a,i;
printf("Enter number of elements:");
scanf("%d",&a);
int arr[a];
for(i=0;i<a;i++)
{
printf("Enter Data:");
scanf("%d",&arr[i]);
}

int n = sizeof(arr)/sizeof(arr[0]);
struct Node* root = insertLevelOrder(arr, root, 0, n);
printf("In order:\n");
inOrder(root);
printf("\nPre order:\n");
preOrder(root);
printf("\nPost order:\n");
postOrder(root);
}

You might also like