これは私の後継機能です:
int
BalancedTree::successor( TreeNode *node ) // successor is the left-most child of its right subtree,
{
TreeNode *tmp = node;
int successorVal = -1;
tmp = tmp->m_RChild;
if( NULL != tmp )
{
while( NULL != tmp->m_LChild )
tmp = tmp->m_LChild;
// now at left most child of right subtree
successorVal = tmp->m_nodeData;
}
return successorVal;
} // successor()
インストラクターがランダムなデータで満たされたファイルをくれました。このすべてのデータをツリーに配置すると、挿入メソッドが機能しますが、削除メソッドが開始されると、ある時点で後続関数が後続を探しているノードと同じ値を返します。これは正しく起こるべきではありませんか?私の後継関数は正しいですか?削除方法を見たい場合は、それを言及してください。