int postOrder(struct node* root, char organ[], char bt[], int* val){
if(root != NULL) {
postOrder(root->left, organ, bt, val);
postOrder(root->right, organ, bt, val);
if(strcmp(root->organ.organname, organ) == 0){
if(strcmp(root->organ.bloodtype, bt) == 0){
if(val == 0){
printf("%s\n", root->organ.name);
val = 1;
}
}
}
}
}
我正试图在第一次打印之后终止这个递归函数。我最初的想法是传入一个十进制指针“val”,并在我想终止函数时将其设置为1。思想过程是它会改变函数外部的值,这样之前的所有调用都会有更新的指针,但我不认为这就是它在这个设置中的工作方式。
此函数通过二叉树按顺序搜索post。
最佳答案
使用*val
。
瓦尔只是一个指针。你想要它的价值。
关于c - 终止C中的递归函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19844267/