用c语言代码实现二叉树的先序遍历,中序遍历和后序遍历
时间: 2024-11-25 20:22:03 浏览: 2
在C语言中,我们可以使用递归的方式实现二叉树的先序遍历、中序遍历和后序遍历。这里分别给出三种遍历的代码示例:
1. **先序遍历 (Preorder Traversal)**:
```c
void preorderTraversal(struct TreeNode* node) {
if (node != NULL) {
printf("%d ", node->val); // 先访问根节点
preorderTraversal(node->left); // 再遍历左子树
preorderTraversal(node->right); // 最后遍历右子树
}
}
```
2. **中序遍历 (Inorder Traversal)**:
```c
void inorderTraversal(struct TreeNode* node) {
if (node != NULL) {
inorderTraversal(node->left); // 首先遍历左子树
printf("%d ", node->val); // 然后访问根节点
inorderTraversal(node->right); // 最后遍历右子树
}
}
```
3. **后序遍历 (Postorder Traversal)**:
```c
void postorderTraversal(struct TreeNode* node) {
if (node != NULL) {
postorderTraversal(node->left); // 先遍历左子树
postorderTraversal(node->right); // 再遍历右子树
printf("%d ", node->val); // 最后访问根节点
}
}
```
`struct TreeNode`是定义二叉树结点的结构体,通常包含`val`(整数值),`left`(指向左子节点的指针) 和 `right`(指向右子节点的指针)。
阅读全文