スライド 1: ad-4. 二分探索木
スライド 2
スライド 3: 4-1. 二分探索木
スライド 4: 二分木とは
スライド 5: 二分探索木とは
スライド 6: 要素の削除
スライド 7: 削除する要素に子がない場合
スライド 8: 削除する要素に子が1つある場合
スライド 9: 削除する要素に子が2つある場合
スライド 10: 4-2. 「二分探索木」を実習できる オンラインサイトの紹介
スライド 11
スライド 12: パソコン演習
スライド 13: パソコン演習
スライド 14: パソコン演習
ad
-4.
二分探索木
1
金子邦彦
(
C
言語によるアルゴリズムとデータ構造)(全6回)
URL:
https
://
www
.kkaneko.jp/pro/ad/index.html
二分木のデータ構造と
3
種類の走
査法(先行順
・中間
順・後行順)の理解と実装
【
学習内容の構成
】
1.
二分木の構造
:要素、左
部分木
ポインタ、右
部分木
ポインタの
3
セルで構成されるレ
コード
2.
走査法
:先行順(根
→
左
→
右)
、中間順(左
→
根
→
右)、後行順(左
→
右
→
根)の
3
種類
3.
実装演習
:
C
言語による二分
木の作成と各
走査法の
プログラム実装
•
前提:
C
言語の基礎、ポイン
タの理
解
•
意義:再帰的データ構造の理解
、木構造を用いたア
ル
ゴリズム設計能力の習得
2
4-
1.
二分探索木
3
二分木とは
レコード
を次の3つで構成
•
要素を格納する
セル
•
左部分木
を指す
ポインタ
を格納する
セル
•
右部分木
を指す
ポインタ
を格納する
セル
4
左部分木
根
(root)
右部分木
二分探索木とは
•
二分探索木
では,小さい要素を左部分木に,大き
い要素を右部分木に格納する
•
二分探索木
を,中間順
(in-
order)
で走査すると,
要素は整列(ソート)された順になる
5
左部分木
根
(root)
右部分木
要素の削除
•
要素の削除は,場合分けで行う
•
削除する要素に子がない場合
•
削除する要素に子が1つある場合
•
削除する要素に子が2つある場合
6
削除する要素に子がない場合
単純に要素を削除する
4を削除
7
5
9
3
1
4
7
5
9
3
1
7
1,9の削除のときも,
単純に要素を削除する
削除する要素に子が1つある場
合
要素を削除する.直下の子要素が置き換わる
5を削除
7
5
9
3
1
4
7
9
3
1
8
削除する要素に子が2つある場
合
要素を削除する.左部分木の中にある「最大の要
素」を削除の上で,それが置き換わる
7を削除
7
5
9
3
1
4
9
5
9
3
1
4
4-
2.
「二分探索木」を実習で
きる
オンラインサイトの紹介
10
11
「二分探索木」を実習できる
オンラインサイトの紹介
パソコン演習
①
Chrome
ウェブブラウザを起動する
②
次の
URL
を開く
https://vis
ualgo.net
/ja
③
「
二分探索木
」をクリック
12
パソコン演習
④
説明が出る.
ESC
キー
を押して,説明を消す
⑤
左下のメニューで「
検索
」を選び,
「
行く
」を選ぶ.表示を確認する.
13
パソコン演習
⑥
今度は,左下のメニューで「
入れる
」を選び,
「
行く
」をクリックする.表示を確認する.
⑦
データが増える
ので,確認する
14