c二叉树的后序遍历(递归)
作者:野牛程序员:2024-01-03 21:51:08C语言阅读 2676
二叉树的后序遍历可以通过递归实现。以下是一个示例代码:
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树节点
struct TreeNode {
int data;
struct TreeNode* left;
struct TreeNode* right;
};
// 后序遍历函数
void postorderTraversal(struct TreeNode* root) {
if (root != NULL) {
// 先递归遍历左子树
postorderTraversal(root->left);
// 再递归遍历右子树
postorderTraversal(root->right);
// 最后访问当前节点
printf("%d ", root->data);
}
}
// 创建新节点的函数
struct TreeNode* createNode(int data) {
struct TreeNode* newNode = (struct TreeNode*)malloc(sizeof(struct TreeNode));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
int main() {
// 创建一个示例二叉树
struct TreeNode* root = createNode(1);
root->left = createNode(2);
root->right = createNode(3);
root->left->left = createNode(4);
root->left->right = createNode(5);
// 执行后序遍历
postorderTraversal(root);
return 0;
}请注意,这只是一个简单的示例,可以根据实际情况修改节点的数据和结构。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:c二叉树的后序遍历(非递归)
- 下一篇:c语言二叉树的中序遍历(非递归)
