再帰を使用した二分探索木のトラバーサルの作成。
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 は単にオブジェクト内のデータを出力する関数です。各オブジェクトには、data、left、right の 3 つの値があります。関数を使用してこれらのアイテムに実際にアクセスするにはどうすればよいですか?