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

データ構造とアルゴリズム論
第8章 連結リスト
平成17年12月13日
森田 彦
基礎課題提出状況(12/6)
基礎課題提出状況(12/6) 平均=36.5(昨年35.7) [全課題39題]
全
基
礎
課
'04年度
題
'05年度
提
出
67.6
%
120
100
度数(人数)
80
60
5章以前の課題未提
出 19名
40
20
0
0~19
20~24
25~31
提出数
昨年を上回るペース
32~37
38~39
応用課題提出状況(12/6)
応用課題提出状況(12/6) 平均14.9(昨年14.1)
全課題27題
度数(人数)
昨年を上回るペース
50
45
40
35
30
25
20
15
10
5
0
'04年度
'05年度
0~5
6~10 11~15 16~20 21~25 26~27
提出数
①27題:8名
②26題:5名
③25題:7名
本章(本日)の学習のねらい
① 変数の保管(記憶)場所である、参照(アドレ
ス)の概念を理解する。→8-1節
② 連結リストの概念を理解する。→8-2・3節
③ 連結リストに関する基本操作(挿入、削除)の
プログラミング(の仕方)を学習する。
→8-4・5節
参照とは?
→ コンピュータ・メモリ
変数の保管場所
1
2
変数A
変数B
3
4
メモリ上の
記憶位置
↓
変数C
5
6
7
8
9
10
11
12
アドレス
↓
13
14
15
16
アドレスを保管する変数 →
参照
参照型変数
オブジェクト名や配列名など
連結リストとは?
クラス
フィールドの一つが“参照(型変数)”である場合を
考える。
データ
参照
参照は変数のアドレスを指定できる。
データ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 データ5
データ4 データ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.127、130の説明を良く読む。
*p.128~129の処理の流れを追って、挿入の容易さを理解する。
 8-3節 連結リストの作成
*p.133~134の連結リスト作成の流れをよく理解する。
*【基礎課題8-1・2】で実際のプログラミング(の仕方)を理解する。
 8-4節 セルの挿入
*【基礎課題8-3】で挿入操作のプログラミングを行う。
*【応用課題8-A】が分かれば、理解度OK!
 8-5節 セルの削除
p.146の流れをよく理解 →【応用課題8-B】 さらに【応用課題8-C】
で理解度チェック
第2回目テストのアナウンス
 日時:12/27 13:15~14:15
 実施形態:ペーパーテスト形式(テスト中
はPCを使用できません)
 参照等:テキスト、プリント、自作ノート参
照可
 出題範囲:第5章~第9章まで
 アドバイス:暗記ではなく、処理の流れを
“理解する”事に重点を置いて下さい。