2016-10-25 3 views
-6

ツリー内のすべての要素を解放するために再帰を作成しようとしました。データ構造体はinfo、左の子へのポインタ、およびbrotherへのポインタを持つ構造体です。ツリー内のすべての要素を解放する

ツリー内のすべてのノードを解放するにはどうすればよいですか?私は、ポストオーダーの方法を試してみましたが、私はそれが正しい
は木を使用して、再帰的または反復的に、これを行うことができます2つの方法があります

+1

ようこそ。 [ask]と[mcve]を読んで質問を編集し、関連するコードを投稿してください。ここの人々は読者を気にしません。ありがとうございました – OldProgrammer

+0

何を試しましたか?私たちにいくつかのコード、好ましくは[最小限の、完全で証明可能な例](http://stackoverflow.com/help/mcve)を示してください。どうやって動かないのか教えてください。 –

+0

私はトリッドしましたが、サイトは私の投稿が基準を満たしていないと言うメッセージを表示し続けました –

答えて

0

バイナリではありませんあなた

ありがとうござい取得することはできません。

再帰的アプローチは、コード化するのが最も簡単です。ノードに子孫または兄弟が存在するかどうかをチェックし、それぞれのノードに「フリー・ノード」を呼び出すかどうかをチェックし、呼び出されたノードを解放する「フリー・ノード」関数を作成します。ルートノードでこの「フリーノード」操作を実行すると、ツリー全体が解放されます。

繰り返しアプローチは同じことを行いますが、ノードのリストは空きにします。

  1. ルートノードのみを含むノードへのポインタのリストを作成します。
  2. リストの先頭にあるノードを取得し、すべての兄弟を追加してノードのリストに子を誘導し、そのノードを解放してリストから削除します。
  3. リストが空の場合は停止し、完了です。
  4. 手順2に進みます。
関連する問題