すみません。フォーラムルールを把握できていませんでした。以後気を付けます。
やり方を
⓵消す節点のデータをその右部分木の最小値のデータに書き換える。
⓶右部分木の最小値のデータを持つ節点を削除する。
という風にやるとできました。
ありがとうございました。
検索結果 2 件
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 2分探索木の節点の削除
- 返信数: 2
- 閲覧数: 2284
2分探索木の節点の削除
2つ子を持つ節点の節点の削除のC言語での実現方法が分かりません。 以下のコードで削除を行うと、削除はできるのですが、別の関数で、節点を表示するときにエラーが起きてしまいます。 どこが間違っているか教えていただけるとありがたいです。 よろしくお願いします。 person* deleteNode(person* p, char name[]) { person* x; if (p == NULL) { printf("見つかりませんでした。\n"); return NULL; } else if (strcmp(name, p->name) > 0) { p->right = deleteNode...