建立一棵用二叉链表方式存储的二叉树,并实现对其进行先序、中序、后序三种方法遍历,输出遍历结果。
时间: 2023-06-12 20:04:06 浏览: 51
实现先序,中序和后序遍历的二叉树遍历程序
5星 · 资源好评率100%
二叉树的节点结构体如下:
```
typedef struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
```
我们可以通过递归的方式实现二叉树的遍历,具体实现如下:
先序遍历:
```
void preorder(TreeNode* root) {
if (root == NULL) {
return;
}
printf("%d ", root->val);
preorder(root->left);
preorder(root->right);
}
```
中序遍历:
```
void inorder(TreeNode* root) {
if (root == NULL) {
return;
}
inorder(root->left);
printf("%d ", root->val);
inorder(root->right);
}
```
后序遍历:
```
void postorder(TreeNode* root) {
if (root == NULL) {
return;
}
postorder(root->left);
postorder(root->right);
printf("%d ", root->val);
}
```
以上三个函数都是递归函数,我们可以通过传入根节点的指针来访问整个二叉树。
阅读全文