使用递归为二叉搜索树创建遍历。
void inOrder(void (*inOrderPtr)(T&))
{
if(this->left != NULL)
inOrder((*inOrderPtr)(this->left));
inOrderPtr(this->data);
if(this->right != NULL)
inOrder((*inOrderPtr)(this->right));
}
这是功能。现在这显然是错误的。这个函数是这样调用的:
first.inOrder(print_vals);
首先是对象,而 print vals 只是一个打印对象中数据的函数。每个对象都有三个值,数据、左和右。我如何使用该功能实际访问这些项目?