#include<bits/stdc++.h>
#define MaxSons 3
typedef struct node
{
char data;
struct node *sons[MaxSons];
}TSonNode;
int TreeHeight1(TSonNode *t)
{
TSonNode *p;
int i,h,maxh=0;
if(t==NULL) return 0;
else
{
for(i=0;i<MaxSons;i++)
{
p=t->sons[i] ;
if(p!=NULL)
{
h=TreeHeight1(p);
if(maxh<h) maxh=h;
}
}
return (maxh+1);
}
}
void creatT(TSonNode *&T)
{
char ch;
scanf("%c",&ch);
if(ch=='#')
T=NULL;
else
{
T=(TSonNode*)malloc(sizeof(TSonNode));
T->data=ch;
for(int i=0;i<MaxSons;i++)
{
creatT(T->sons[i]);
}
}
}
void priT(TSonNode *T)
{
if(T==NULL)
;
else
{
printf("%c",T->data);
for(int i=0;i<MaxSons;i++)
{
priT(T->sons[i]);
}
}
}
int main()
{
TSonNode *T;
creatT(T);
priT(T);
printf("%d",TreeHeight1(T));
return 0;
}
输入:abe#####c###d###
输出:abecd 3