0% found this document useful (0 votes)
3 views

10 binary

Uploaded by

0shivathefighter
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

10 binary

Uploaded by

0shivathefighter
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

# include <stdio.

h>

# include <stdlib.h>

# include <conio.h>

int flag=0;

typedef struct BST

int data;

struct BST *lchild, *rchild;

}node;

void insert(node *, node *);

void inorder(node *);

void preorder(node *);

void postorder(node *);

node *search(node *, int, node **);

void main()

int choice, ans =1, key;

node *new_node, *root, *tmp, *parent; node *get_node();

root = NULL;

clrscr();

printf("\nProgram For Binary Search Tree ");

do {

printf("\n1.Create");

printf("\n2.Search");

printf("\n3.Recursive Traversals");

printf("\n4.Exit");

printf("\nEnter your choice :");

scanf("%d", &choice);
switch (choice)

case 1:

do {

new_node = get_node();

printf("\nEnter The Element ");

scanf("%d", &new_node->data);

if (root == NULL) /* Tree is not Created*/

root = new_node;

else

insert(root, new_node);

printf("\nWant To enter More Elements?(1/0)");

scanf("%d",&ans);

} while (ans);

break;

case 2:

printf("\nEnter Element to be searched :");

scanf("%d", &key);

tmp = search(root, key, &parent);

if(flag==1)

printf("\nParent of node %d is %d", tmp->data, parent->data);

else

printf("\n The %d Element is not Present",key);

flag=0;
break;

case 3:

if (root == NULL)

printf("Tree Is Not Created");

else

printf("\nThe Inorder display : ");

inorder(root);

printf("\nThe Preorder display : ");

preorder(root);

printf("\nThe Postorder display : ");

postorder(root);

break;

} while (choice != 4);

getch();

/*Get new Node */

node *get_node()

node *temp;

temp = (node *) malloc(sizeof(node));

temp->lchild = NULL;

temp->rchild = NULL;

return temp;

/*This function is for creating a binary search tree */

void insert(node *root, node *new_node)


{

if (new_node->data < root->data)

if(root->lchild == NULL)

root->lchild = new_node;

else

insert(root->lchild, new_node);

if (new_node->data > root->data)

if (root->rchild == NULL)

root->rchild = new_node;

else

insert(root->rchild, new_node);

/*This function is for searching the node from binary Search Tree*/

node *search(node *root, int key, node **parent)

node *temp; temp = root;

while (temp != NULL)

if (temp->data == key)

printf("\nThe %d Element is Present", temp->data);

flag=1;

return temp;

}
*parent = temp;

if (temp->data > key)

temp = temp->lchild;

else

temp = temp->rchild;

return NULL;

/*

This function displays the tree in inorder fashion

*/

void inorder(node *temp)

if (temp != NULL)

inorder(temp->lchild);

printf("%d\t", temp->data);

inorder(temp->rchild);

/*

This function displays the tree in preorder fashion */

void preorder(node *temp)

if (temp != NULL)

printf("%d\t", temp->data);

preorder(temp->lchild);

preorder(temp->rchild);
}

/*This function displays the tree in postorder fashion */ void postorder(node *temp)

if (temp != NULL)

postorder(temp->lchild);

postorder(temp->rchild);

printf("%d\t", temp->data);

You might also like