У меня есть двоичное дерево поиска с ключом INT (int cod).Есть структуры, используемые для этого, хорошо работающие при тестировании;Узел двоичного дерева имеет информацию из структуры Task
struct Task {
int cod;
char*inginer;
int nrActivitati;
char**activitati;
};
struct nod {
Task info;
nod *st, *dr;
};
struct nodLista {
Task info;
nodLista *next;
};
Я хочу найти в этом двоичном дереве значение char (char [20]).Если один или несколько узлов содержат объект Task, который хранит точно такое же значение в поле inginer , я хочу, чтобы переменная nrTasks добавила к своему текущему значению nrActivitati значение поля из этого объекта ... Но что-то здесь не работает.Есть идеи?Надеюсь, вы понимаете мое объяснение.Эта функция возвращает только 0, независимо от информации об узле.
int nrTaskuri(nod*root, char ing[20]) {
int nrTasks = 0;
if (root) {
if (strcmp(root->info.inginer, ing)==0) {
nrTasks += root->info.nrActivitati;
}
if (root->st) {
nrTaskuri(root->st, ing);
}
if (root->dr) {
nrTaskuri(root->dr, ing);
}
}
else printf("Tree is empty");
return nrTasks;
}