先序遍历、中序遍历与后序遍历二叉树。c语言
时间: 2024-05-10 22:17:10 浏览: 118
c语言遍历二叉树包括前序,中序,后序
5星 · 资源好评率100%
二叉树的遍历分为三种:先序遍历、中序遍历和后序遍历。下面是三种遍历方式的 C 语言实现。
先序遍历:
```c
void preorderTraversal(struct TreeNode* root) {
if (root == NULL) {
return;
}
printf("%d ", root->val); // 输出节点值
preorderTraversal(root->left); // 递归遍历左子树
preorderTraversal(root->right); // 递归遍历右子树
}
```
中序遍历:
```c
void inorderTraversal(struct TreeNode* root) {
if (root == NULL) {
return;
}
inorderTraversal(root->left); // 递归遍历左子树
printf("%d ", root->val); // 输出节点值
inorderTraversal(root->right); // 递归遍历右子树
}
```
后序遍历:
```c
void postorderTraversal(struct TreeNode* root) {
if (root == NULL) {
return;
}
postorderTraversal(root->left); // 递归遍历左子树
postorderTraversal(root->right); // 递归遍历右子树
printf("%d ", root->val); // 输出节点值
}
```
这里假设二叉树的节点结构体为:
```c
struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
};
```
阅读全文