c语言二叉树用c语言写一个二叉树的遍历
时间: 2024-06-30 13:00:28 浏览: 118
在C语言中,我们可以使用结构体和指针来实现二叉树的遍历。这里简单介绍三种基本的遍历方式:前序遍历、中序遍历和后序遍历。首先,我们需要定义一个二叉树节点的结构:
```c
typedef struct TreeNode {
int val; // 节点值
struct TreeNode* left; // 左子节点
struct TreeNode* right; // 右子节点
} TreeNode;
```
接下来,我们分别给出这三种遍历方法的实现:
**前序遍历(根-左-右):**
```c
void preorderTraversal(TreeNode* root) {
if (root != NULL) {
printf("%d ", root->val); // 先访问根节点
preorderTraversal(root->left); // 再遍历左子树
preorderTraversal(root->right); // 最后遍历右子树
}
}
```
**中序遍历(左-根-右):**
```c
void inorderTraversal(TreeNode* root) {
if (root != NULL) {
inorderTraversal(root->left); // 先遍历左子树
printf("%d ", root->val); // 再访问根节点
inorderTraversal(root->right); // 最后遍历右子树
}
}
```
**后序遍历(左-右-根):**
```c
void postorderTraversal(TreeNode* root) {
if (root != NULL) {
postorderTraversal(root->left); // 先遍历左子树
postorderTraversal(root->right); // 再遍历右子树
printf("%d ", root->val); // 最后访问根节点
}
}
```
阅读全文