C++实现二叉树的前,中,后序遍历完整代码
时间: 2024-12-17 22:19:50 浏览: 2
在C++中,二叉树的前序、中序和后序遍历是基础操作,这里分别给出三种遍历的模板代码:
首先,我们定义一个简单的二叉树节点结构:
```cpp
template <typename T>
struct TreeNode {
T val;
TreeNode<T> *left;
TreeNode<T> *right;
TreeNode(T x) : val(x), left(NULL), right(NULL) {}
};
```
接下来是三种遍历的函数实现:
1. 前序遍历 (根-左-右):
```cpp
void preorderTraversal(TreeNode<T> *root) {
if (root == NULL) return;
cout << root->val << " "; // 先访问根节点
preorderTraversal(root->left); // 再递归遍历左子树
preorderTraversal(root->right); // 最后遍历右子树
}
```
2. 中序遍历 (左-根-右):
```cpp
void inorderTraversal(TreeNode<T> *root) {
if (root == NULL) return;
inorderTraversal(root->left); // 首先遍历左子树
cout << root->val << " "; // 然后访问根节点
inorderTraversal(root->right); // 最后遍历右子树
}
```
3. 后序遍历 (左-右-根):
```cpp
void postorderTraversal(TreeNode<T> *root) {
if (root == NULL) return;
postorderTraversal(root->left); // 先递归左子树
postorderTraversal(root->right); // 再递归右子树
cout << root->val << " "; // 最后访问根节点
}
```
要实际运行这些函数,你需要创建一个二叉树实例,并调用相应的遍历函数。
阅读全文