我正在尝试实现二叉搜索树。
出于一些不同的原因,我发现自己需要遍历这棵树:
(1)检查BST是否具有特定元素
(2)填充BST中保存的值的数组
(3)检查两个BST是否相等
是否有一种编写遍历函数的方法,该遍历函数将通用函数(未指定其参数)作为参数,以便在遍历BST时调用该函数?
(例如,一个用于检查当前节点的值是否等于给定值的函数)。
谢谢:)
答案 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>);