C语言遍历链式二叉树的代码
时间: 2023-09-30 13:06:27 浏览: 42
```
#include<stdio.h>
#include<stdlib.h>
// 定义链式二叉树的结构体
typedef struct TreeNode {
int data;
struct TreeNode* left;
struct TreeNode* right;
}TreeNode;
// 创建一个新的二叉树节点
TreeNode* new_node(int data) {
TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode));
node->data = data;
node->left = NULL;
node->right = NULL;
return node;
}
// 遍历二叉树,先序遍历
void pre_order(TreeNode* root) {
if (root == NULL) {
return;
}
printf("%d ", root->data);
pre_order(root->left);
pre_order(root->right);
}
// 遍历二叉树,中序遍历
void in_order(TreeNode* root) {
if (root == NULL) {
return;
}
in_order(root->left);
printf("%d ", root->data);
in_order(root->right);
}
// 遍历二叉树,后序遍历
void post_order(TreeNode* root) {
if (root == NULL) {
return;
}
post_order(root->left);
post_order(root->right);
printf("%d ", root->data);
}
int main() {
TreeNode* root = new_node(1);
root->left = new_node(2);
root->right = new_node(3);
root->left->left = new_node(4);
root->left->right = new_node(5);
root->right->left = new_node(6);
root->right->right = new_node(7);
printf("Pre-order traversal: ");
pre_order(root);
printf("\n");
printf("In-order traversal: ");
in_order(root);
printf("\n");
printf("Post-order traversal: ");
post_order(root);
printf("\n");
return 0;
}
```