以通用函数为参数的遍历函数

时间:2019-04-30 03:51:43

标签: c++ arrays dictionary

我正在尝试实现二叉搜索树。

出于一些不同的原因,我发现自己需要遍历这棵树:

(1)检查BST是否具有特定元素

(2)填充BST中保存的值的数组

(3)检查两个BST是否相等

是否有一种编写遍历函数的方法,该遍历函数将通用函数(未指定其参数)作为参数,以便在遍历BST时调用该函数?

(例如,一个用于检查当前节点的值是否等于给定值的函数)。

谢谢:)

1 个答案:

答案 0 :(得分:1)

您可以借助函数指针。将函数的地址作为参数传递给遍历函数:

void func_to_call()
{
...
}

// Call to traverse with function pointer as one of the arguments
traverse(&func_to_call, <other parameters required by traverse>);