当前位置:首页C语言 > 正文

c二叉树的后序遍历(递归)

作者:野牛程序员:2024-01-03 21:51:08C语言阅读 2644

二叉树的后序遍历可以通过递归实现。以下是一个示例代码:

#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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击