量大树的高度代码c语言用顺势结构
时间: 2024-10-03 22:00:55 浏览: 37
在C语言中,测量一棵树的高度通常涉及到递归,因为树的高度可以通过比较根节点和其左右子树的高度来确定,而左子树和右子树的高度也是树高度的一部分。顺势结构,也就是递归,是一种自顶向下的解决问题的方式。
下面是一个简单的C语言函数示例,用于计算二叉树的高度:
```c
#include <stdio.h>
// 定义二叉树结点结构
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
// 计算二叉树高度的函数
int heightOfTree(TreeNode* root) {
// 如果根节点为空,则返回0(表示空树)
if (root == NULL) {
return 0;
}
// 否则,递归地获取左子树和右子树的高度,并取较大值加1(加1是因为当前节点也算一层)
else {
int leftHeight = heightOfTree(root->left);
int rightHeight = heightOfTree(root->right);
return (leftHeight > rightHeight ? leftHeight : rightHeight) + 1;
}
}
int main() {
// 创建并初始化一个实际的二叉树
TreeNode* tree = ...; // 根据实际情况填充树的结构
int height = heightOfTree(tree);
printf("The height of the tree is %d.\n", height);
return 0;
}
```
在这个例子中,`heightOfTree`函数通过不断将问题分解为更小的问题(即子树的高度),直到遇到基本情况(空节点)。然后逐层合并结果,最终得到整棵树的高度。
阅读全文