MST

星途 面试题库

面试题:C语言typedef在结构体嵌套与递归定义中的深度应用

编写一个使用typedef处理结构体嵌套和递归定义的代码示例,例如实现一个简单的树结构,其中节点结构体包含指向自身类型的指针成员,同时利用typedef使得代码在不同场景下使用结构体类型更加简洁和易读,要求代码逻辑清晰且正确处理内存管理。
35.6万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <stdio.h>
#include <stdlib.h>

// 使用typedef定义树节点结构体
typedef struct TreeNode {
    int data;
    struct TreeNode *left;
    struct TreeNode *right;
} TreeNode;

// 创建新节点的函数
TreeNode* createNode(int value) {
    TreeNode* newNode = (TreeNode*)malloc(sizeof(TreeNode));
    if (newNode == NULL) {
        fprintf(stderr, "内存分配失败\n");
        return NULL;
    }
    newNode->data = value;
    newNode->left = NULL;
    newNode->right = NULL;
    return newNode;
}

// 释放树内存的函数
void freeTree(TreeNode* root) {
    if (root != NULL) {
        freeTree(root->left);
        freeTree(root->right);
        free(root);
    }
}

int main() {
    // 创建树
    TreeNode* root = createNode(1);
    root->left = createNode(2);
    root->right = createNode(3);
    root->left->left = createNode(4);
    root->left->right = createNode(5);

    // 释放树的内存
    freeTree(root);

    return 0;
}