#include <stdio.h>
#include <stdlib.h>
#define DATATYPE char
#define NULL '\0'
typedef struct node
{
DATATYPE data
;
struct node
*lchild
,*rchild
;
}BTLINK
;
BTLINK
*creat()
{
BTLINK
*q
;
BTLINK
*s
[30];
int j
,i
;
char x
;
printf("i,x=");
scanf("%d,%c",&i
,&x
);
while(i
!=0&&x
!='$')
{
q
=(BTLINK
*)malloc(sizeof(BTLINK
));
q
->data
=x
;
q
->rchild
=NULL;
q
->lchild
=NULL;
s
[i
]=q
;
if(i
!=1)
{
j
=i
/2;
if(i
%2==0)
s
[j
]->lchild
=q
;
else
s
[j
]->rchild
=q
;
}
printf("i,x=");
scanf("%d,%c",&i
,&x
);
return s
[1];
}
}
int depthtree(BTLINK
*bt
)
{
int dep
,depl
,depr
;
if(bt
=NULL)
dep
=0;
else
{
depl
=depthtree(bt
->lchild
);
depr
=depthtree(bt
->rchild
);
if(depl
>depr
)
dep
=depl
+1;
else
dep
=depr
+1;
}
return dep
;
}
int main(int argc
, char *argv
[])
{
BTLINK
*bt
;
int treeh
;
bt
=creat();
treeh
=depthtree(bt
);
printf("\n 二叉树高度是%d",treeh
);
return 0;
}
转载请注明原文地址: https://lol.8miu.com/read-30837.html