【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.19829

二分木の削除方法
投稿者---ootya(2005/02/10 16:20:55)


過去の二分木の作成によって、大まかな関数はわかったのですが、削除方法がどうしてもわからないので、どなたか教えていただけないでしょうか?


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:二分木の削除方法 19831 Craft 2005/02/10 17:43:16
<子記事> Re:二分木の削除方法 19834 ぽこ 2005/02/10 22:58:33


No.19831

Re:二分木の削除方法
投稿者---Craft(2005/02/10 17:43:16)


>過去の二分木の作成によって、大まかな関数はわかったのですが、削除方法がどうしてもわからないので、どなたか教えていただけないでしょうか?

二分木の絵をかいてみて、あるノードが削除されると、削除後の二分木のツリーがどうなるかを確認すれば、ノードを削除したときにすべきことがみえてこないでしょうか?

少なくとも、あるノードに対する子ノードを消すことになると、それにぶら下がる全ての孫ノードは消さないとだめだと思います。


この投稿にコメントする

削除パスワード

No.19832

Re:二分木の削除方法
投稿者---南野骨茶(2005/02/10 20:01:15)


>少なくとも、あるノードに対する子ノードを消すことになると、それにぶら下がる全ての孫ノードは消さないとだめだと思います。

それは削除の仕様によると思います。

場合によっては、あるノードを削除する際、それにぶら下がっている
子供や孫などは削除せず、リンクを張り替える必要があると思います。
ぶら下がっている分をまとめて削除する場合に比べて、
やっかいな処理になりそうですが…。


この投稿にコメントする

削除パスワード

No.19847

Re:二分木の削除方法
投稿者---plute(2005/02/11 16:32:55)


Craftさん、南野骨茶さん、ぽこさん、返信ありがとうございます。
削除したい要素につながっている場合はリンクをつなぎかえしないとだめなので、ぽこさんのいっていたやり方でやってみたいと思いますが、その場合で削除するときはforやwhileで削除したいところまでまわすくらいしか思いつかないのですが、ほかに何か有効なものはありますでしょうか?


この投稿にコメントする

削除パスワード

No.19854

Re:二分木の削除方法
投稿者---南野骨茶(2005/02/11 18:32:22)


>ほかに何か有効なものはありますでしょうか?

要素が見つかればよいので、forやwhileを使って
よろしいのではないでしょうか。

他にも手だてがあるのかもしれませんが、私は思いつきません。


この投稿にコメントする

削除パスワード

No.19834

Re:二分木の削除方法
投稿者---ぽこ(2005/02/10 22:58:33)


>過去の二分木の作成によって、大まかな関数はわかったのですが、削除方法がどうしてもわからないので、どなたか教えていただけないでしょうか?

削除対象の要素より小さい値がぶら下がっている木の中で
一番大きな値を持つ要素を削除した場所に挿入(リンクの繋ぎ変え)を
行えば出来ます。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧