データ構造とアルゴリズム論

データ構造とアルゴリズム論
第8章 連結リスト
平成27年7月3日
森田 彦
理解度チェック1(問題1)
空欄①に入る適切な式は次のいずれですか?
1.n<2
4.n>=2
2. n<=2
5. n>2
3. n==2
理解度チェック1 解答
空欄①に入るのは次のいずれですか?適切なもの
を選択して下さい。
1.n<2
2. n<=2
3. n==2
4.n>=2
5. n>2
 プログラムより、条件①が満たされたとき、フィボ
ナッチ数列Fnの値が1となっている。
 フィボナッチ数列の定義より、値が1となるのは
F1とF2の場合。
 したがって、n≦2がその条件。
理解度チェック2(問題2)
空欄②に入る適切な式は次のいずれですか?
1.n<2
4.n>=2
2. n<=2
5. n>2
3. n==2
理解度チェック2 解答
空欄①に入るのは次のいずれですか?適切なもの
を選択して下さい。
1.n<2
2. N<=2
3. n==2
4.N<=2
5. n>2
 プログラムより、条件①が満たされたとき、フィボ
ナッチ数列Fnが次の式で求められてる。
Fn=Fn-2+Fn-1
 (フィボナッチ数列の定義により)これは、n≧3の時
に可能。
 したがって、上の選択肢の中では、n>2が該当。
本章(本日)の学習のねらい
① 変数の保管(記憶)場所である、参照(アドレ
ス)の概念を理解する。→8-1節
② 連結リストの概念を理解する。→8-2・3節
③ 連結リストに関する基本操作(挿入、削除)の
プログラミング(の仕方)を学習する。
→8-4・5節
参照とは?
→ コンピュータ・メモリ
変数の保管場所
1
25
2 15.5
変数A
変数B
3
true
4
メモリ上の
記憶位置
↓
変数C
5
6
7
8
9
10
11
12
アドレス
オブジェクトAの記憶領域
13
オブジェク 14
15
16
参照
トA
参照を保管する変数 →
↓
参照型変数
オブジェクト名や配列名など
変数「オブジェクトA」の
中身→9番地
連結リストとは?
クラス
フィールドの一つが“参照(型変数)”である場合を
考える。
データ
参照
参照は他の変数のアドレスを指定できる。
データ1
データ3
データ2
参照によってつながれたリスト
連結リスト
要素(セル)の挿入・削除が容易
配列要素の挿入
[1]
[2]
[3]
[4]
[5]
A データ1 データ2 データ3 データ4 データ5
A[4]にデータXを挿入する。
1.A[6]を用意する。
2.「データ5」をA[6]へ移動。
3.「データ4」をA[5]へ移動。
4.「データX」をA[4]へ代入。
[1]
[2]
[3]
[4]
[5]
[6]
A データ1 データ2 データ3 データX
データ4 データ4
データ5 データ5
挿入位置以降の要素をずらす必要がある!
連結リストの場合
D1
D2
D3
D4
D5
※「データ1」はD1と略記
D3の入ったセルの次にDXの入ったセルを挿入。
3.D3セルの参照がDXセルを指すようにする。
2.DXセルの参照がD4セルを指すようにする。
1.「データX」の入ったセルを生成する。
D1
D2
D3
D4
DX
D3セルの参照以外は変更していない!
D5
連結リストの学習ポイント
参照によるセルのつなぎ方
※ 参照の動き(変化)を理解すること
がポイント
本章の学習の流れ
 8-1節 “参照”について
プリントをよく読み、“参照”の概念をよく理解する。次の2点がポイ
ント。
*参照(値)とは、メモリ上の保管場所(アドレス) である。
*オブジェクト名は参照型変数である
 8-2節 連結リストとは?
*p.135の説明を良く読む。
*p.136~137の処理の流れを追って、挿入の容易さを理解する。
 8-3節 連結リストの作成
*p.141~142の連結リスト作成の流れをよく理解する。
*【基礎課題8-1・2】で実際のプログラミング(の仕方)を理解する。
 8-4節 セルの挿入
*【基礎課題8-3】で挿入操作のプログラミングを行う。
*【応用課題8-A】が分かれば、理解度OK!
 8-5節 セルの削除
p.154の流れをよく理解 →【応用課題8-B】 さらに【応用課題8-C】
で理解度チェック
今後の予定
 7/ 3 第8章 連結リスト
 7/10 第9章 木構造
 7/17 第10章 スタックとキュー
 7/24 第2回テスト&課題最終チェック
プリントをどれだけじっくり読んで理解しているか
がポイント→理解度確認テストでチェック
学習に当たって
 第8章までの基礎課題を全て終了した学
生は、第8章の応用課題を全て提出すれ
ば演習を終えても結構です。
 上の条件を満たしていないのに無断退出
した学生は欠席と見なしますので注意し
て下さい。