代码生成用c++来实现二叉树的递归遍历
时间: 2023-06-10 17:03:48 浏览: 45
可以参考以下代码实现:
```
#include <stdio.h>
#include <stdlib.h>
typedef struct Node{
int data;
struct Node* left;
struct Node* right;
}Node;
Node* createNode(int data){
Node* node = (Node*)malloc(sizeof(Node));
node->data = data;
node->left = NULL;
node->right = NULL;
return node;
}
void preOrder(Node* root){
if(root == NULL){
return;
}
printf("%d ", root->data);
preOrder(root->left);
preOrder(root->right);
}
void inOrder(Node* root){
if(root == NULL){
return;
}
inOrder(root->left);
printf("%d ", root->data);
inOrder(root->right);
}
void postOrder(Node* root){
if(root == NULL){
return;
}
postOrder(root->left);
postOrder(root->right);
printf("%d ", root->data);
}
int main(){
Node* root = createNode(1);
root->left = createNode(2);
root->right = createNode(3);
root->left->left = createNode(4);
root->left->right = createNode(5);
printf("Preorder traversal: ");
preOrder(root);
printf("\n");
printf("Inorder traversal: ");
inOrder(root);
printf("\n");
printf("Postorder traversal: ");
postOrder(root);
printf("\n");
return 0;
}
```
这里我们使用了结构体来表示二叉树的节点,包含了节点的数据以及左右子节点的指针。createNode函数用来创建一个节点指针,接受一个数据作为参数。preOrder、inOrder和postOrder分别实现了前序遍历、中序遍历和后序遍历。在主函数中,我们构造了一个二叉树,并对其进行了三种遍历,输出对应遍历结果。