を与えますpizqとpderがそれぞれ左と右の子であるバイナリツリーの実装であることが分かります。は、私は、コードのこの部分を持っている0
しかし、私は 'free()'が実際にメモリを解放し、ここでそれを見ることができないことを理解していたので、私はこれを投稿しています。あなたは、5という値のノードテストを作成してから解放してから、コンソールでinorderを歩くと、 '0'を出力して終了します。なぜ地獄は0を印刷していますか? if (p == NULL) return
というケースにまっすぐに行かず、何も印刷せずに終了してはいけませんか?私は間違って何をしていますか?
ここINORDER機能のための私のコードです:
void inorder(NODO *p)
{
if (p == NULL) return;
if(p->pizq != NULL)
inorder((p->pizq);
// Process root
printf("%d ", p->val);
if(p->pder != NULL)
inorder(p->pder);
}
mallocキャストに関するhttps://stackoverflow.com/questions/605845/do-i-cast-the-result-of-mallocを参照してください。 –
この質問は不完全です。 'NODO'とは何ですか? – alk
@alk a struct ... –