用C语言写先序遍历二叉树T的递归算法
时间: 2024-12-02 21:28:00 浏览: 16
先序遍历的递归算法-《数据结构》(C语言版)
在C语言中,我们可以使用递归来实现二叉树的先序遍历。先序遍历的顺序是根节点 -> 左子树 -> 右子树。以下是递归算法的步骤:
```c
// 定义二叉树结点结构体
typedef struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
// 先序遍历函数
void preorderTraversal(TreeNode* root) {
if (root != NULL) { // 如果当前节点非空
printf("%d ", root->val); // 访问当前节点
// 递归遍历左子树
preorderTraversal(root->left);
// 递归遍历右子树
preorderTraversal(root->right);
}
}
```
在这个函数中,首先检查根节点是否为空,如果不为空则打印值,然后分别对左子树和右子树进行递归调用。如果整个树都是空的,那么遍历过程将结束。
阅读全文