二叉树的先序遍历 C程序
时间: 2024-06-21 10:02:57 浏览: 6
二叉树的先序遍历是指先访问根节点,再访问左子树,最后访问右子树。下面是一个C程序实现二叉树的先序遍历:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树的节点
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
// 二叉树的先序遍历函数
void preorderTraversal(struct TreeNode* root) {
if (root == NULL) return;
printf("%d ", root->val); // 访问根节点
preorderTraversal(root->left); // 访问左子树
preorderTraversal(root->right); // 访问右子树
}
int main() {
// 创建二叉树
struct TreeNode* root = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->val = 1;
root->left = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->left->val = 2;
root->right = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->right->val = 3;
root->left->left = NULL;
root->left->right = NULL;
root->right->left = NULL;
root->right->right = NULL;
// 先序遍历二叉树
printf("先序遍历结果:");
preorderTraversal(root);
return 0;
}
```