[英]Search for a char value in a binary seach tree C
我有一个带有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 ing [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;
}
主要问题是您忽略了对nrTaskuri
的递归调用的返回值。
尝试这个:
if (root->st) {
nrTasks += nrTaskuri(root->st, ing);
}
if (root->dr) {
nrTasks += nrTaskuri(root->dr, ing);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.