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

c语言二叉树的前序遍历(递归)

作者:野牛程序员:2024-01-03 21:55:45C语言阅读 2855

二叉树的前序遍历可以通过递归实现。以下是一个用C语言编写的简单示例:

#include <stdio.h>
#include <stdlib.h>

// 二叉树结点的定义
struct TreeNode {
    int data;
    struct TreeNode* left;
    struct TreeNode* right;
};

// 递归前序遍历函数
void preorderTraversal(struct TreeNode* root) {
    if (root != NULL) {
        // 访问当前结点
        printf("%d ", root->data);
        // 递归遍历左子树
        preorderTraversal(root->left);
        // 递归遍历右子树
        preorderTraversal(root->right);
    }
}

// 创建一个新结点的函数
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);

    // 进行前序遍历并输出结果
    printf("前序遍历结果: ");
    preorderTraversal(root);

    return 0;
}


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击