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

データ構造とアルゴリズム論
第9章 連結リスト
平成15年12月16日
森田 彦
第2回目テスト結果
平均点=65.3 最高点=100(2名) 最低点=32(1名)
受験生=146名
第2回目テスト結果(平均点=65.3)
40
35
30
度数
25
20
15
10
5
0
30~39
40~49
50~59
60~69
70~79
80~89
90~100
総合成績(テスト平均点+応用課題数)
最高点=123 最低点=34
受験生=146名
総合成績分布(平均=73.2)
(2回のテストの平均点+応用課題数)
45
40
35
度数
30
25
20
15
10
5
0
0~49
50~59
60~69
70~79
80~89
応用課題で挽回を!
90~99
100~123
基礎課題提出状況(12/9)
平均提出数=42.8 (全課題数44)
基礎課題提出状況(12/9)
平均提出数=42.8
140
120
度数(人数)
100
80
60
40
20
0
0~20
21~25
26~30
31~35
提出数範囲
87%が41題以上を提出
36~40
41~44
応用課題提出状況(12/9)
平均提出課題数=9.6
応用課題提出状況(12/9)
平均提出数=9.6
45
40
35
度数(人数)
30
25
20
15
10
5
0
0
1~5
6~10
11~15
16~20
21~25
提出数範囲
①26題:1名
②25題:1名
③24題:3名
26~30
本章(本日)の学習のねらい
① 変数の保管(記憶)場所である、参照(アドレ
ス)の概念を理解する。
② 連結リストの概念を理解する。
③ 連結リストに関する基本操作(挿入、削除)の
プログラミング(の仕方)を学習する。
参照とは?
→ コンピュータ・メモリ
変数の保管場所
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を挿入する。
4.「データX」をA(4)へ代入。
2.「データ5」をA(6)へ移動。
1.A(6)を用意する。
3.「データ4」をA(5)へ移動。
(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
連結リストの学習ポイント
 以下の方法を学習する。
① データ(セル)を(メモリ上)に生成する方法
② 参照によるセルのつなぎ方
 参照の動き(変化)を理解することがポイ
ント
本章の学習の流れ
 9-1節 “参照”について
プリントをよく読み、“参照”の概念をよく理解する。次の2点がポイント。
参照(値)とは、メモリ上の保管場所(アドレス) である。
オブジェクト名は参照型変数である
 9-2節 連結リストとは?
p.142~143の流れをよく理解する
 9-3節 連結リストの作成
p.148~150の流れをよく理解する
【応用課題9-A・B】で実際のプログラミング(の仕方)を理解する。
 9-4節 セルの挿入
【応用課題9-C・D】で理解度チェック
 9-5節 セルの削除
p.160の流れをよく理解
【応用課題9-E】で理解度チェック
【自由課題】にもチャレンジしてみて下さい。
1/13:今後の学習のガイダンス+これまでの応用課題
チェック