小编Byz*_*thr的帖子

C 中的递归函数有返回值但没有返回值

所以我正在用 C 编写一些二叉搜索树函数(这里是完美工作的节点结构和插入函数):

typedef struct searchTreeNode {
    int data;
    struct searchTreeNode *left;
    struct searchTreeNode *right;
} STNode;


void insert(STNode **proot, int data) {

    STNode *node = *proot;
    if (!node) {
        *proot = newNode(data);
        return ;
    }
    if (data <= node -> data) insert(&(node -> left), data);
    else insert(&(node -> right), data);
}
Run Code Online (Sandbox Code Playgroud)

我发现以下用于查找树的最大值的递归函数工作得很好,即使最后一个递归调用实际上返回一个整数:

int max(STNode *node) {

    if (!node) return 0;
    if (!(node -> right)) return node -> data;
    max(node -> right);
}
Run Code Online (Sandbox Code Playgroud)

这意味着,如果我没记错的话,它的作用与此完全相同:

int max(STNode *node) {

    if (!node) …
Run Code Online (Sandbox Code Playgroud)

c recursion return binary-search-tree

3
推荐指数
1
解决办法
312
查看次数

标签 统计

binary-search-tree ×1

c ×1

recursion ×1

return ×1