Sei sulla pagina 1di 8

ALGORITHMS AND DATA STRUCTURE

Individual Assignment

(NADIA CASMER – MC180105995)

Write a C program to insert a sequence of elements in order to create a binary tree.

Int array [7] = { 27, 14, 35, 10, 19, 31, 42 };

a) Draw a binary tree based on the above data/element.

27

14 35

10 19 31 42

b) Write a complete C program to implement

i. in-order traversal,
#include <stdio.h>
#include <stdlib.h>

struct node
{
int data;
struct node* left;
struct node* right;
};

struct node* newNode(int data)


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

return(node);
}
void printInorder(struct node* node)
{
if (node == NULL)
return;

printInorder(node->left);

printf("%d ", node->data);

printInorder(node->right);
}

int main()
{
struct node *root = newNode(27);
root->left = newNode(14);
root->right = newNode(35);
root->left->left = newNode(10);
root->left->right = newNode(19);
root->right->left = newNode(31);
root->right->right = newNode(42);

printf("\nInorder traversal of binary tree is \n");


printInorder(root);

getchar();
return 0;
}

ii. pre-order traversal and


#include <stdio.h>
#include <stdlib.h>

struct node
{
int data;
struct node* left;
struct node* right;
};

struct node* newNode(int data)


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

return(node);
}
void printPreorder(struct node* node)
{
if (node == NULL)
return;

printf("%d ", node->data);

printPreorder(node->left);

printPreorder(node->right);
}

int main()
{
struct node *root = newNode(27);
root->left = newNode(14);
root->right = newNode(35);
root->left->left = newNode(10);
root->left->right = newNode(19);
root->right->left = newNode(31);
root->right->right = newNode(42);

printf("\nPreorder traversal of binary tree is \n");


printPreorder(root);

getchar();
return 0;
}

iii. post-order traversal.


#include <stdio.h>
#include <stdlib.h>

struct node
{
int data;
struct node* left;
struct node* right;
};

struct node* newNode(int data)


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

return(node);
}
void printPostorder(struct node* node)
{
if (node == NULL)
return;

printPostorder(node->left);

printPostorder(node->right);

printf("%d ", node->data);


}

int main()
{
struct node *root = newNode(27);
root->left = newNode(14);
root->right = newNode(35);
root->left->left = newNode(10);
root->left->right = newNode(19);
root->right->left = newNode(31);
root->right->right = newNode(42);

printf("\nPostorder traversal of binary tree is \n");


printPostorder(root);

getchar();
return 0;
}

a) in-order traversal exe file.


b) pre-order traversal exe file.

c) post-order traversal exe file.


a) In- order traversal C PROGRAM COPY
b) Pre-order traversal C PROGRAM COPY
c) Post-order traversal C PROGRAM COPY

Potrebbero piacerti anche