能否提供一个完整的二叉树遍历(包括前序、中序和后序)的c语言代码示例?
时间: 2024-11-05 12:34:13 浏览: 11
C 语言实现二叉树的前序、中序、后序遍历的示例代码
当然可以。以下是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); // 最后访问右子节点
}
}
```
你可以通过调用这三个函数,并传递你的二叉树的根节点来遍历整棵树。
阅读全文