从树的每个节点添加整数

adding integers from each node of a tree

如何将来自不同节点的数据加在一起? Inserttotree() 只是创建一个新节点并输入指定的 data 值。

所以基本上我只是想在 countquantity() 函数中一起添加 23

typedef struct tree_s tree_t;
typedef int data_t;

struct tree_s {
    data_t data;
    tree_t *left;
    tree_t *right;
};

int main(int argc, char **argv){
    tree_t *tree;
    tree = NULL;
    tree = insertToTree(tree, 3);
    tree = insertToTree(tree, 2);
    printf("Total: %d\n", countQuantity(tree));
    return 0;
}

int countQuanity(tree_t *tree){
    int i = 0;
    if(tree == NULL){
        return i;
    }

    i = tree->data + countQuantity(tree->left);
    i = tree->data + countQuantity(tree->right);
    return i;
}

看看你的这部分代码,

i = tree->data + countQuantity(tree->left);
i = tree->data + countQuantity(tree->right); 
    //The value of i is being over written here
return i;

你的代码应该更像这样,

i = tree->data + countQuantity(tree->left);
i += countQuantity(tree->right);
return i;

结果是节点值和两个子树的计算值之和:

i=tree->data + countQuantity(tree->left) + countQuantity(tree->right)