6-4 求二叉树高度 分数 20 作者 陈越 单位 浙江大学 本题要求给定二叉树的高度。 函数接口定义: int GetHeight( BinTree BT ); 其中BinTree结构定义如下: typedef struct TNode *Position; typedef Position BinTree; struct TNode{ ElementType Data; BinTree Left; BinTree Right; }; 要求函数返回给定二叉树BT的高度值。 裁判测试程序样例: #include <stdio.h> #include <stdlib.h> typedef char ElementType; typedef struct TNode *Position; typedef Position BinTree; struct TNode{ ElementType Data; BinTree Left; BinTree Right; }; BinTree CreatBinTree(); /* 实现细节忽略 */ int GetHeight( BinTree BT ); int main() { BinTree BT = CreatBinTree(); printf("%d\n", GetHeight(BT)); return 0; } /* 你的代码将被嵌在这里 */ 输出样例(对于图中给出的树): 4
时间: 2024-03-09 14:50:25 浏览: 377
教你怎么求二叉树的高度
可以使用递归的方法,分别求出左子树和右子树的高度,取最大值加一即可。以下是一个示例代码:
```c
int GetHeight(BinTree BT)
{
if (!BT) {
return 0;
}
int left_height = GetHeight(BT->Left);
int right_height = GetHeight(BT->Right);
return (left_height > right_height) ? (left_height + 1) : (right_height + 1);
}
```
其中,`GetHeight` 函数接受一个二叉树的根节点作为参数,返回该二叉树的高度。首先判断根节点是否为空,如果为空则返回 0。否则,递归求出左子树和右子树的高度,取最大值加一就是该二叉树的高度。
阅读全文