ゲーム 公開

探索アルゴリズム「二分探索木 シミュレーション編」公開

2019/03/30

 

こんばんは。えいたです。

大学卒業から10年経過、卒業研究を再現できますか?

情報系の大学に進学 → 教育系のゼミに配属 → 教育に関する研究

僕はゼミ室のテーマに沿って、卒業研究は二分探索木の教材を制作しました。

使用言語:シミュレーションはJava、アニメーション教材はFlash

まさかのFlash使用禁止令、アニメーション教材は冬休みに制作しました。

もしも、シミュレーションをFlashで制作した場合が気になる・・・。

「10年越しのリベンジ、教授に届け!」

 

スポンサーリンク

二分探索木とは

IT技術者の基本、基本情報技術者試験に出題あり。

コンピュータプログラムにおいて、「左の子孫の値 ≤ 親の値 ≤ 右の子孫の値」という制約を持つ二分木である。探索木のうちで最も基本的な木構造である。
平衡状態では木の高さはO(log2N)となる。ただし最悪の場合は、事実上の線形リストになり、木の高さはO(N)となる。

引用元:二分探索木 - Wikipedia

  • 85を検索:50 → 75 → 90 → 85(成功)
  • 47を検索:50 → 25 → 40 → 45(失敗)

線形リストより探索回数が減少、二分探索木のメリットです。

 

「二分探索木 シミュレーション編」で学ぶ

「二分探索木 シミュレーション編」について

ルール

各操作(検索・挿入・削除)について、シミュレーションをします。

検索

25を検索:50 → 25(成功)

挿入

55を挿入:50 → 75 → 左側に挿入(成功)

削除

75を削除:50 → 75 → ノードを削除(成功)

画面構成

初期状態において、初期化ボタンで二分探索木を選択できます。

7種類から選択、「1」は探索木無し状態(不具合ではありません)

入力数値は2桁(1~99)、手動/自動は選択可能!

  • 手動:ユーザが次ステップの実行権を持つ
  • 自動:自動的に次ステップに進む

最後に各操作を選択、各ステップをアニメーションで表現しました。

操作方法

二分探索木を選択 → 数値を入力 → 手動/自動を選択 → 操作を実行

二分探索木の決定は「初期化ボタン」で確定します。

入力数値はキーボード入力、空白の場合はランダムです。

手動はステップ毎に「手動ボタン」を押して下さい。

 

削除処理は複雑

子が存在するノードを削除する場合、置き換える必要あり!

子が2つの場合について、削除アルゴリズムを説明します。

子が1つ:削除対象と子を置き換えるだけ。

75を削除

75を探索成功 → ノードを削除

75未満の最も大きい数値を探索

左側ノードを探索 → 右側ノードが存在するまで探索 → 65を探索成功

65に置き換える

75を65に置き換える → 二分探索木が成立

 

さいごに

卒業研究からの改善点は、各操作の処理をアニメーション表示!

・Flashを未インストール
静止画の弱点、アニメーションが伝わらない。

「YouTubeで実演する!」

ユーザからの需要次第ですが、取扱説明書の動画は検討に値する?

二分探索木はシミュレーション編で学習、ゲーム編で理解を深めて下さい。

 

他のゲームも遊んで下さいね。

ゲーム一覧

 

広告(関連)

-ゲーム, 公開