在树后序遍历上读取访问冲突

时间:2018-03-15 12:50:20

标签: c++

我正在实现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

0 个答案:

没有答案