このメソッドは、BST 内の最大のノードを見つけてその値を返し、それを削除します。でアクセス違反が発生していprev->rightLink = cur->leftLink;
ます。私はC++に比較的慣れておらず、原因を見つけることができません。
int CTree::popLargest(TreeNode* tr)
{
int largest;
TreeNode* prev = NULL;
TreeNode* cur = tr;
while (cur->rightLink != NULL)
{
prev = cur;
cur = cur->rightLink;
largest = cur->info;
//DeleteAttemptTwo(tr, largest);//DeleteItem(largest);
}
if (cur->leftLink != NULL)
{
prev->rightLink = cur->leftLink;
}
else
{
prev->rightLink = NULL;
}
return largest;
}