#include <iostream>
#include <cstdlib> //包含malloc函数
using namespace std;
typedef struct BitNode{
char data;
struct BitNode *lc,*rc;
}BitNode,*BitTree;
void CreateBitTree(BitTree &T){ //创建二叉树
char ch; cin>>ch;
if(ch!='#'){
T = (BitTree)malloc(sizeof(BitNode)); //每次创建前都要申请空间
T->data = ch;
CreateBitTree(T->lc); //递归
CreateBitTree(T->rc);
}else T=NULL;
}
int a[50]={0}; int m = 0; //数组用于保存每一层的节点树,初始化每层最大节点数m
int getwidth(BitTree T,int k){
if(T!=NULL){
a[k]++;
if(m<a[k]) m = a[k]; //精髓:小于a[k]时,修改m的值
getwidth(T->lc,k+1);
getwidth(T->rc,k+1);
}else return 0;
return m;
}
int main(){
BitTree T=NULL;
CreateBitTree(T);
cout << getwidth(T,0);
return 0;
}