0

このコードには実行時エラーがあり、何が問題なのかを判断するのに問題があります。stack クラスには基本的なスタック操作 (ポップ プッシュ トップ) があり、トラバーサルの場所を保存するために使用されます。

parityBST::~parityBST()
{

    if (root == NULL)
    {
        return;

    }
    else 
    {
        //postOrder non recursive traversal for destructor
        stack* s1 = new stack();
        s1->push(root);

        binaryNode* nodePtr= root;
        while (!s1->isEmpty())
        {
            //RUNTIME ERROR HERE (after several iterations)
            if (nodePtr->left)
            {
                s1->push(nodePtr->left);
                nodePtr = nodePtr->left;
            } else if (nodePtr->right)
            {

                s1->push(nodePtr->right);
                nodePtr = nodePtr->right;
            } else 
            {

                delete nodePtr;
                s1->pop();
                nodePtr = s1->getTop();
            }

        }

    }

}
4

1 に答える 1