二叉树的遍历(前序,中序,后序)用C语言
时间: 2024-06-07 15:03:51 浏览: 117
二叉树是一种非常重要的数据结构,它有三种遍历方式:前序遍历、中序遍历和后序遍历。它们都是深度优先搜索(DFS)的一种形式。下面是这三种遍历方式的详细介绍和示例代码:
1. 前序遍历
前序遍历的顺序是:根节点 -> 左子树 -> 右子树。具体的实现方法是:先访问根节点,再递归地访问左子树和右子树。下面是前序遍历的C语言实现:
```c
void preOrderTraversal(struct TreeNode* root) {
if (root != NULL) {
printf("%d ", root->val);
preOrderTraversal(root->left);
preOrderTraversal(root->right);
}
}
```
2. 中序遍历
中序遍历的顺序是:左子树 -> 根节点 -> 右子树。具体的实现方法是:先递归地访问左子树,再访问根节点,最后递归地访问右子树。下面是中序遍历的C语言实现:
```c
void inOrderTraversal(struct TreeNode* root) {
if (root != NULL) {
inOrderTraversal(root->left);
printf("%d ", root->val);
inOrderTraversal(root->right);
}
}
```
3. 后序遍历
后序遍历的顺序是:左子树 -> 右子树 -> 根节点。具体的实现方法是:先递归地访问左子树,再递归地访问右子树,最后访问根节点。下面是后序遍历的C语言实现:
```c
void postOrderTraversal(struct TreeNode* root) {
if (root != NULL) {
postOrderTraversal(root->left);
postOrderTraversal(root->right);
printf("%d ", root->val);
}
}
```
阅读全文