好的,所以我正在尝试对二叉搜索树进行级别顺序遍历,但它不起作用。下面的代码对我来说很有意义,但这可能是因为我一直在研究它,并且我确信它应该可以工作。
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% 了解所有细节。