输入
输入为接受键盘输入的由大写英文字符和"#"字符构成的一个字符串(用于创建对应的二叉树)。
输出
若表示的二叉树对应普通树,则该普通树的度;否则输出ERROR。
样例输入
AB#CD##E### ABC#### AB##C## ABCD###EF##G### A##B##
样例输出
3 1 ERROR 3 1
#include <iostream>
#include<stdlib.h>
using namespace std;
typedef struct tree
{
char date;
tree *left,*right;
}Tree;
void add(Tree *&T)
{
char str;
cin>>str;
if(str!='#')
{
T = (Tree*)malloc(sizeof(Tree));
T->date = str;
add(T->left);
add(T->right);
}
else
{
T = NULL;
}
}
int Max=0;
void travel(Tree *&T,int n)
{
if(T!=NULL)
{
travel(T->right,n+1);//普通树的孩子结点为二叉树左子树右孩子的结点和;
travel(T->left,0);
}
if(Max<n)
{
Max = n;
}
}
int main(int argc, const char * argv[]) {
Tree *T;
add(T);
if(T->right==NULL)
{
travel(T,0);
cout<<Max;
}
else
{
cout<<"ERROR";
}
return 0;
}