template <class T>
void BT<T>::inOrder(void (*inOrderPtr)(T&))
{
inOrderPtr(inOrder(this->root));
}
template <class T>
void BT<T>::inOrder(Node<T>* root) const
{
if (root->left != NULL)
inOrder(root->left);
//something here
if (root->right != NULL)
inOrder(root->right);
}
わかりました、再帰によってこのトラバーサルを作成しようとしています。私は実際にこの問題を以前に投稿しましたが、関数ポインターを使用しなければならなかったため、間違っていました。私は自分が何をすべきか理解していません。私はプライベートなものを呼び出すパブリックラッパーを持っています...しかし、パブリックのものは関数が渡されるものなので、それで何をすればよいですか?? 私は頭が悪いので、誰かが私に小さなヒントをくれたとしても、私はそれを理解すると確信しています. ここからどこへ行けばいいのかわかりません。
それを呼び出すコードの例は次のとおりです。
first.inOrder(print_val)