用c语言实现二叉树链表前中后层次遍历,全部代码
时间: 2024-12-06 14:25:44 浏览: 16
二叉树的创建与遍历C语言实现代码.zip
在C语言中,我们可以使用递归的方式来实现二叉树的层序遍历(包括前序、中序和后序)。这里分别提供前序、中序和后序遍历的示例代码:
**前序遍历(根-左-右)**:
```c
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
void printPreorder(TreeNode* root) {
if (root == NULL) return;
// 打印当前节点
printf("%d ", root->val);
// 递归访问左子树
printPreorder(root->left);
// 递归访问右子树
printPreorder(root->right);
}
```
**中序遍历(左-根-右)**:
```c
void printInorder(TreeNode* root) {
if (root == NULL) return;
// 递归访问左子树
printInorder(root->left);
// 打印当前节点
printf("%d ", root->val);
// 递归访问右子树
printInorder(root-右-根)**:
```c
void printPostorder(TreeNode* root) {
if (root == NULL) return;
// 递归访问左子树
printPostorder(root->left);
// 递归访问右子树
printPostorder(root->right);
// 打印当前节点
printf("%d ", root->val);
}
```
以上代码假设你已经有了一个`TreeNode`结构体,包含值`val`以及指向左右子节点的指针`left`和`right`。每一遍历函数都首先检查根节点是否为空,如果为空则返回;否则按照规定的顺序打印节点值并递归遍历左右子树。
阅读全文