RBツリーのルートから距離= nにあるノードの合計値をプログラムで計算します。私はそのようなノードを見つける再帰的な関数を持っているが、私はそれらのすべてをどのように合計するか考えていない。どのように見える:C++関数の独立和
void nSum (RBTreeNode* B, int n) {
if (B == NULL || n < 0)
return;
if (n == 0) {
Integer* v = (Integer*) B->value;
S += v->number // there I want to make an independent sum of them
return;
}
nSum (B->right, n-1);
nSum (B->left, n-1);
}
私はこれにかなり新しいと私は答えが見つかりませんでした。
void nSum (RBTreeNode* B, int n, vector <int> sum) {
if (B == NULL || n < 0)
return;
if (n == 0) {
int* v = (int*) B->value;
sum.push_back(v->number);
return;
}
nSum (B->right, n-1, sum);
nSum (B->left, n-1, sum);
}
をしかし、その後合計が空
なぜベクターを使用するのですか? –