编写程序,实现二叉链表存储结构下二叉树的先序、中序、后序遍历的递归算法。用C++编写
时间: 2024-12-23 15:12:28 浏览: 62
在C++中,我们可以创建一个简单的二叉树结构,然后使用递归来实现先序(Preorder)、中序(Inorder)和后序(Postorder)遍历。首先,我们需要定义二叉节点类`Node`:
```cpp
class Node {
public:
int data;
Node* left;
Node* right;
// 构造函数
Node(int value) : data(value), left(nullptr), right(nullptr) {}
};
```
接下来,我们分别编写三个遍历函数:
1. 先序遍历(根-左-右)
```cpp
void preOrder(Node* root) {
if (root != nullptr) {
cout << root->data << " "; // 访问根节点
preOrder(root->left); // 遍历左子树
preOrder(root->right); // 遍历右子树
}
}
```
2. 中序遍历(左-根-右)
```cpp
void inOrder(Node* root) {
if (root != nullptr) {
inOrder(root->left); // 遍历左子树
cout << root->data << " "; // 访问根节点
inOrder(root->right); // 遍历右子树
}
}
```
3. 后序遍历(左-右-根)
```cpp
void postOrder(Node* root) {
if (root != nullptr) {
postOrder(root->left); // 遍历左子树
postOrder(root->right); // 遍历右子树
cout << root->data << " "; // 访问根节点
}
}
```
现在你可以根据需要创建一个二叉树,并调用这三个遍历函数来进行相应的操作。例如:
```cpp
// 创建二叉树实例并进行遍历...
Node* tree = createBinaryTree(); // 自定义函数创建树
preOrder(tree);
inOrder(tree);
postOrder(tree);
```
阅读全文
相关推荐


















