XDOJ 771 求二叉树高度
试题名称
求二叉树高度
问题描述:
下面的程序求给定二叉树的高度,包括创建二叉树(
CreatBinTree
)、计算给定的二叉树的
高度(
GetHeight
)等操作,评判系统中已实现
CreatBinTree
以及
main
函数。
例如,下图所示的二叉树的高度为
4
。
请定义并提交实现计算二叉树高度的函数
GetHeight
。
#include <stdio.h>
#include<stdlib.h>
typedef struct TNode{
char Data;
struct Tnode *Left, *Right;
}Tnode, *BinTree;
BinTree
CreatBinTree
( )
;
//
根据先序序列创建二叉树
int
GetHeight
( BinTree BT )
;
//
计算给定二叉树的高度,返回高度值
int main(){ //
评测系统中使用这里定义的
main
函数进行测试
BinTree BT = CreatBinTree();
printf("%d\n", GetHeight(BT));
return 0;
}
输入说明:
输入二叉树的先序序列,用
#
代表空树(子树)。如上图中二叉树的先序序列为:
ABD##FE###CH###
输出说明:
按照
main
函数中安排的操作输出一个整数,表示二叉树的高度,参看下面的样例。
测试样例:
输入样例
1
ABD##FE###CH###
输出样例
1
4
输入样例
2
#
输出样例
2
0
// 2025/1/2
int GetHeight( BinTree BT )
{
if (BT == NULL) return 0;
if (!BT->Left && !BT->Right) return 1;
int l = GetHeight(BT->Left) + 1;
int r = GetHeight(BT->Right) + 1;
return (l > r ? l : r);
}