我正在实现postorder,tree遍历算法的迭代版本,但是我得到了一个" Read Access Violation"尝试运行它时出错。 这是我的代码,有人可以帮我纠正这个问题吗?
template<typename ElementType>
template<typename UnaryFunction>
void BinarySearchTree<ElementType>::postorderTraversal(UnaryFunction predicate)
{ // begin function
stack<BinaryTreeNode<ElementType>*> stackedNodes;
BinaryTreeNode<ElementType> *currentPtr;
currentPtr = rootPtr;
stackedNodes.push(rootPtr);
while ((currentPtr != nullptr) || (!stackedNodes.empty()))
{ // begin loop
if (currentPtr != nullptr)
{ // begin conditional
stackedNodes.push(currentPtr);
currentPtr = currentPtr->leftChildPtr;
} // end conditional
else
{ // begin else
currentPtr = stackedNodes.top();
stackedNodes.pop();
currentPtr = currentPtr->rightChildPtr;
predicate(currentPtr->key);
} // end else
} // end loop
} // end function