わかりましたので、バイナリ検索ツリーのレベル順トラバーサルを実行しようとしていますが、機能していません。以下のコードは私にとっては理にかなっていますが、それはおそらく、私がそれをずっと見ていて、それが機能するはずだと確信していたからです.
void BST<T>::levelByLevel(ostream &out) {
Queue<BinNodePointer> q;
BinNodePointer subtreeRoot;
if(myRoot == NULL)
return;
q.enqueue(myRoot);
while(!q.empty()) {
subtreeRoot = q.front();
out << subtreeRoot->data << " ";
q.dequeue();
if(subtreeRoot->left != NULL)
q.enqueue(subtreeRoot->left);
if(subtreeRoot->right != NULL)
q.enqueue(subtreeRoot->right);
}
}
私が間違っていることを指摘してくれるかもしれません。なぜなら、私は二分探索木の概念を理解していますが、すべての詳細について 100% 理解しているわけではないからです。