Notes 20220620182551
Notes 20220620182551
20 18:25
/******************************************************************************
*******************************************************************************/
#include <stdio.h>
#include<stdlib.h>
}treetype;
treetype*create(int num)
{
treetype *p=NULL;
p=(treetype*)malloc(sizeof(treetype));
if(p==NULL)
printf("not enough memory\n");
else
{
p->info=num;
p->left=NULL;
p->right=NULL;
}
return p;
}
void insert(treetype**root,treetype*temp)
{
if((temp)->info<(*root)->info)
{
if((*root)->left==NULL)
(*root)->left=temp;
else
insert(&(*root)->left,temp);
}
else
{
if((*root)->right==NULL)
(*root)->right=temp;
else
insert(&(*root)->right,temp);
}
}
//inorder traversal
void inorder(treetype**root)
{
if((*root)!=NULL)
{
inorder(&(*root)->left);
printf("%d",(*root)->info);
inorder(&(*root)->right);
}
}
// right count
int rightNode(treetype *root){
if(root!=NULL)
{
return 1+rightNode(root->right);
}
}
//leaf count
int countleaf(treetype *root){
if(root==NULL)
return 0;
else if(root->right==NULL && root->left==NULL)
return 1;
else
return countleaf(root->left)+rightNode(root->right);
}
//search key
//height of tree
int heightnode(treetype *root)
{
if (root == NULL)
return 0;
else {
/* compute the depth of each subtree */
int lDepth = heightnode(root->left);
int rDepth = heightnode(root->right);
return current;
}
void main()
{
int num,c=0,h=0,r=0,choice,key;
treetype*root=NULL,*temp;
int ch;
do
{
printf("\n menu \n");
printf("1-create 2-search a key 3-total leaf nodes 4-height of tree 5-right
tree count 6-inorder traversal 7-delete node\n");
scanf("%d",&choice);
switch(choice)
{
case 1: printf("enter element to be entered\n");
scanf("%d",&num);
temp=create(num);
if(root==NULL)
root=temp;
else
insert(&root,temp);
break;
case 2: printf("enter a key\n");
scanf("%d",&key);
search(root,key);
break;
case 3: c=countleaf(root);
printf("total leaf nodes are %d\n",c);
break;
case 4: h=heightnode(root);
printf("height of tree is %d\n",h);
break;
case 5: r=rightNode(root);
printf("right node count is%d\n",r);
break;
case 6: printf("inorder traversal is\n");
inorder(&root);
break;
case 7:printf("enter key to be delted\n");
scanf("%d",&key);
root=deleteNode(root,key);
break;
}
printf("PRESS 0 TO EXIT\n");
scanf("%d",&ch);
}while(ch!=0);