C Program
#include <stdio.h>
#include <malloc.h>
#include <stdio.h>
#include <conio.h>
typedef struct TREE {
int data;
struct TREE *left;
struct TREE *right;
}
TREE;
int main() {
int data,depth;
TREE *tree =NULL;
TREE *InsertTree(int data,TREE *p);
TREE *PrintTreeTriangle(TREE *tree, int level);
int TreeDepth(TREE *tree,int *depth,int level);
clrscr();
while(1) {
printf("\nKey to insert|");
scanf("%d", &data);
if (data==0)
break;
tree =InsertTree(data,tree);
printf("\n Tree Display;\n");
PrintTreeTriangle(tree,1);
depth=0;
TreeDepth(tree,&depth,0);
printf("\nTree Depth =%d\n",depth);
}
return(0);
}
TREE *InsertTree(int data,TREE *p) {
if(!p) {
p=(TREE*)malloc(sizeof(TREE));
p->data=data;
p->left=NULL;
p->right=NULL;
return(p);
}
if(data < p->data)
p->left=InsertTree(data,p->left); else
if(data > p->data)
p->right=InsertTree(data,p->right);
return(p);
}
TREE *PrintTreeTriangle(TREE *tree, int level) {
int i;
if(tree) {
PrintTreeTriangle(tree->right,level+1);
printf("\n\n");
for (i=0;i<level;i++)
printf(" ");
printf("%d",tree->data);
PrintTreeTriangle(tree->left,level+1);
}
return(NULL);
}
int TreeDepth(TREE *tree,int *depth,int level) {
if(tree) {
if (level>*depth)
*depth=level;
TreeDepth(tree->left,depth,level+1);
TreeDepth(tree->right,depth,level+1);
}
return(0);
}