2分探索木に関しての質問です。
空の木にデータ 1, 2, 3, 4, 5, 6, 7 をある順番で挿入して 2 分探索木を得る。このと
き,最小値の探索に最も手数のかかる(最も多くの節点を訪問しなければならない)よ
うな 2 分探索木が得られるのは,どのような順番でデータを挿入したときかを答えなさ
い。
解答:
1を一番最後に挿入したとき。
これで合ってますか?
よろしくお願いします。
もし間違っていましたら、正答をお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/07 01:54
回答3件
0
解答:
1を一番最後に挿入したとき。これで合ってますか?
よろしくお願いします。
そのような問題文が出題されるときには,背景として「2分探索木への挿入というのはこれこれこういう処理である」という前提的な話が前もって与えられているハズと思うので,それに沿って考えれば良い.
(逆に言えば,その場に設けられているそういった前提を明示しなければ外部の者には答え難いということになる.)
さて,
「1を最後に挿入する」が正答か否かに関しては,1を最後とするパターンというのは何種類か考えられるから,それらのパターンを用いた挿入処理を実際に考えてみれば判定できるであろう.
例えば,
今私の頭の中にあるシンプルな挿入処理で考えてみる.
要素数が多いと話が面倒になるので,ここでは{1,2,3,4}の4要素だけの例で考えてみる.
- 4,2,3,1 の順で挿入することを考えると,ルートが4になり,1の場所へのルートからの経路は 4→2→1 となる.
- 2,3,4,1 の順で挿入することを考えると,ルートは2になり,1の場所へのルートからの経路は 2→1 となる.
この時点で1の深さが異なっているから,「1を最後に挿入する」では正答とはならないであろう.
投稿2020/12/07 01:44
編集2020/12/07 01:47総合スコア11990
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
2分探索木の組み上げ方は何種もあるので一意には定まらない。
投稿2020/12/06 14:35
総合スコア16612
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/06 14:37
2020/12/06 14:41 編集
2020/12/06 14:41 編集
2020/12/06 14:42
2020/12/06 14:42
2020/12/06 14:43
2020/12/06 14:43
2020/12/06 14:45
2020/12/06 14:48
2020/12/06 15:00
2020/12/07 03:31 編集
0
最小値の探索に最も手数のかかる(最も多くの節点を訪問しなければならない)よ
うな 2 分探索木が得られるのは,どのような順番でデータを挿入したときかを答えなさ
い。
2分木の実装を、要素を追加したときにそのノードの値より小さい値は左、大きい値が右に追加するという実装と仮定します。
最小値を探す場合は、値が小さいノードが左側にあるので、全ノードを探索する必要はなく、左側のノードを葉に到達するまで辿っていけばよいことがわかります。
「最小値の探索に最も手数のかかる」ということは「左側のノードを辿っていったときの深さが最大」ということで、「全部の値が左側にぶら下がっているような木が作成される要素の挿入順序」が答えです。
そのような2分木が作成される挿入順序は「7, 6, 5, 4, 3, 2, 1」で深さが「7」となる一通りです。
1を一番最後に挿入したとき。
1を最後に挿入の条件だけではだめです。
例えば、(6, 2, 7, 4, 3, 5, 1) とした場合、深さ3なので、深さが最大とはなりません。
頭でイメージするのが難しい場合は、実際にプログラムを書いて確かめてはどうでしょうか。
要素数7ということは、7!=5040通り試せば答えが見つかるので、全探索でも計算可能です。
投稿2020/12/07 02:17
編集2020/12/07 02:18総合スコア21956
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。