我正在尝试实现二叉搜索树。
我发现自己需要遍历树,原因有几个:
(1)检查BST是否具有特定元素
(2)填充BST中保存的值的数组
(3)检查两个BST是否相等
有没有办法编写一个遍历函数,它接受一个泛型函数(其参数未指定)作为参数,以便在遍历BST时调用该函数?
(例如,检查当前节点的值是否等于给定值的函数)。
谢谢 :)
你可以学习函数指针的帮助。将函数的地址作为参数传递给遍历函数:
void func_to_call()
{
...
}
// Call to traverse with function pointer as one of the arguments
traverse(&func_to_call, <other parameters required by traverse>);