親が子を持つかどうかを確認するために、最大ヒープを調べようとしています。私のヒープはベクトルとして実装されています。最初に関数を書きました。bool hasChildren(int loc)locは、ヒープ内の親の位置です。 私の主な条件だった:ヒープの親に子があるかどうか
if(heap[2*loc + 1] == NULL && heap[2*loc + 2] == NULL) //if there are children
問題は、境界指標のうち、確認することができないということです...私はポインタ演算を考えたが、それはあまりにも無効です。誰かが、ヒープの親に子があるかどうかをチェックする方法を提案していますか?
ありがとうございました!
実装ではですか?その場合は、Cタグを削除することができます。 –
しかし、少なくとも1つの子インデックスがNULLでない場合、ノードに子ノードがある場合は、逆になるべきではありませんか? – Vlad