二叉树先序,中序,后序遍历c语言代码
时间: 2024-11-06 11:14:41 浏览: 45
c代码-二叉树的建立以及先序、中序、后序遍历C语言实现
5星 · 资源好评率100%
当然,我可以给你提供二叉树的先序、中序和后序遍历的C语言代码示例。这里假设我们有一个名为`Node`的结构体表示二叉树节点,它包含一个整数值`val`和两个指向左右子节点的指针`left`和`right`。
首先,我们需要定义节点结构:
```c
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
```
然后我们可以分别编写三种遍历算法:
1. 先序遍历(根-左-右)
```c
void preorderTraversal(TreeNode* root) {
if (root != NULL) {
printf("%d ", root->val); // 访问当前节点
preorderTraversal(root->left); // 遍历左子树
preorderTraversal(root->right); // 遍历右子树
}
}
```
2. 中序遍历(左-根-右)
```c
void inorderTraversal(TreeNode* root) {
if (root != NULL) {
inorderTraversal(root->left); // 遍历左子树
printf("%d ", root->val); // 访问当前节点
inorderTraversal(root->right); // 遍历右子树
}
}
```
3. 后序遍历(左-右-根)
```c
void postorderTraversal(TreeNode* root) {
if (root != NULL) {
postorderTraversal(root->left); // 遍历左子树
postorderTraversal(root->right); // 遍历右子树
printf("%d ", root->val); // 访问当前节点
}
}
```
每个函数接收一个二叉树的根节点作为参数,如果节点存在,则按照相应的顺序访问并递归地遍历其子树。
阅读全文