二叉树遍历c语言代码
时间: 2023-07-29 08:12:17 浏览: 115
c语言遍历二叉树
以下是二叉树的前序、中序和后序遍历的 C 语言代码:
```c
// 二叉树结构体
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
// 前序遍历
void preorderTraversal(struct TreeNode* root) {
if (root == NULL) {
return;
}
printf("%d ", root->val); // 先访问根节点
preorderTraversal(root->left); // 再递归访问左子树
preorderTraversal(root->right); // 最后递归访问右子树
}
// 中序遍历
void inorderTraversal(struct TreeNode* root) {
if (root == NULL) {
return;
}
inorderTraversal(root->left); // 先递归访问左子树
printf("%d ", root->val); // 再访问根节点
inorderTraversal(root->right); // 最后递归访问右子树
}
// 后序遍历
void postorderTraversal(struct TreeNode* root) {
if (root == NULL) {
return;
}
postorderTraversal(root->left); // 先递归访问左子树
postorderTraversal(root->right); // 再递归访问右子树
printf("%d ", root->val); // 最后访问根节点
}
```
以上代码中,`struct TreeNode` 是二叉树的结构体,包含了一个值 `val` 和左右子树的指针 `left` 和 `right`。`preorderTraversal`、`inorderTraversal`、`postorderTraversal` 分别是前序、中序和后序遍历的函数,其中使用了递归实现。
阅读全文