编写一段c++程序,实现二叉树的遍历
时间: 2024-09-06 21:01:29 浏览: 43
在C++中,我们可以使用递归的方式来实现二叉树的遍历。这里有三种基本的遍历方式:前序遍历、中序遍历和后序遍历。下面分别给出对应的C++代码示例:
```cpp
// 定义二叉树节点结构
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
// 前序遍历(根-左-右)
void preOrderTraversal(TreeNode* root) {
if (root != NULL) {
std::cout << root->val << " ";
preOrderTraversal(root->left);
preOrderTraversal(root->right);
}
}
// 中序遍历(左-根-右)
void inOrderTraversal(TreeNode* root) {
if (root != NULL) {
inOrderTraversal(root->left);
std::cout << root->val << " ";
inOrderTraversal(root->right);
}
}
// 后序遍历(左-右-根)
void postOrderTraversal(TreeNode* root) {
if (root != NULL) {
postOrderTraversal(root->left);
postOrderTraversal(root->right);
std::cout << root->val << " ";
}
}
```
要在实际程序中使用这些函数,你需要创建一个二叉树实例并传入根节点。例如:
```cpp
int main() {
// 创建一个二叉树实例...
TreeNode* root = new TreeNode(1);
root->left = new TreeNode(2);
root->right = new TreeNode(3);
// 执行遍历
std::cout << "Preorder traversal: ";
preOrderTraversal(root);
std::cout << "\nInorder traversal: ";
inOrderTraversal(root);
std::cout << "\nPostorder traversal: ";
postOrderTraversal(root);
return 0;
}
```
阅读全文