提供中序遍历,前序遍历,输出树的高度c加加
时间: 2024-11-20 20:42:09 浏览: 7
在计算机科学中,二叉树是一种常见的数据结构,它的遍历有多种方式,比如中序遍历、前序遍历和后序遍历。这里提到的"中序遍历"是指从左子树开始,然后访问根节点,最后遍历右子树;"前序遍历"则是先访问根节点,再遍历左子树,最后遍历右子树;"输出树的高度"指的是从根节点到最远叶节点的最长路径上边的数量。
至于"提供C++中求解",你可以参考以下简单的示例代码:
```cpp
#include <iostream>
using namespace std;
// 定义二叉树节点
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
// 中序遍历函数
void inorderTraversal(TreeNode* root) {
if (root != NULL) {
inorderTraversal(root->left);
cout << root->val << " ";
inorderTraversal(root->right);
}
}
// 前序遍历函数
void preorderTraversal(TreeNode* root) {
if (root != NULL) {
cout << root->val << " ";
preorderTraversal(root->left);
preorderTraversal(root->right);
}
}
// 计算高度函数(递归)
int height(TreeNode* root) {
if (root == nullptr)
return 0;
else
return max(height(root->left), height(root->right)) + 1;
}
int main() {
// 创建并初始化树(假设是一个实际的二叉树实例)
TreeNode* tree = ...; // 实际的构造函数或初始化
// 输出中序遍历结果
inorderTraversal(tree);
cout << endl;
// 输出前序遍历结果
preorderTraversal(tree);
cout << endl;
// 输出树的高度
int treeHeight = height(tree);
cout << "Tree Height: " << treeHeight << endl;
return 0;
}
```
阅读全文