题目
#inclde <iostream>
#include <cstdlib>
#define MAXN 100
using namespace std;
typedef struct node
{
char data; //数据元素
struct node *lchild; //指向左孩子结点
struct node *rchild; //指向右孩子结点
}BTNode;
void CreateBTree(BTNode *&b); //创建二叉树
//void DispBTree(BTNode *b); //显示二叉树
int Height(BTNode *b); //求高度
char str[MAXN]; //定义为全局变量方便修改
int index = 0;
int main()
{
BTNode *b; //指向根节点
cin >> str;
CreateBTree(b);
cout << Height(b);
return 0;
}
void CreateBTree(BTNode *&b)
{
char ch;
b = NULL;
ch = str[index++];
if(ch != '#')
{
b = (BTNode* )malloc(sizeof(BTNode));
b->data = ch;
CreateBTree(b->lchild);
CreateBTree(b->rchild);
}
}
int Height(BTNode *b)
{
int lchildh, rchildh;
if(b == NULL)
{
return 0;
}
else
{
lchildh = Height(b->lchild);
rchildh = Height(b->rchild);
return (lchildh > rchildh) ? (lchildh + 1) : (rchildh + 1);
}
}