用C语言实现二叉树操作: 输出二叉树的节点;输出二叉树的叶子结点; 二叉树的高度。
时间: 2024-11-23 10:28:24 浏览: 33
在C语言中,实现二叉树的基本操作通常涉及结构体定义树节点、创建和遍历树等步骤。这里简述一下如何实现部分功能:
1. **输出二叉树的节点**:
首先,定义一个二叉树节点结构:
```c
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
```
然后,可以编写一个函数来递归地打印所有节点:
```c
void printTree(struct TreeNode* root) {
if (root == NULL) return;
printf("%d ", root->val);
printTree(root->left);
printTree(root->right);
}
```
2. **输出二叉树的叶子结点**:
叶子结点是没有孩子的节点,可以修改上述`printTree`函数,只打印值为NULL的节点:
```c
void printLeaves(struct TreeNode* root) {
if (root == NULL || (root->left == NULL && root->right == NULL)) {
printf("%d ", root->val);
} else {
printLeaves(root->left);
printLeaves(root->right);
}
}
```
3. **计算二叉树的高度**:
这需要另一个递归函数来计算最大深度:
```c
int height(struct TreeNode* root) {
if (root == NULL) return 0;
int leftHeight = height(root->left);
int rightHeight = height(root->right);
return (leftHeight > rightHeight ? leftHeight : rightHeight) + 1;
}
```
阅读全文