論理構造

Download Report

Transcript 論理構造

データ構造とプログラミング技法
担当:和田俊和
居室:A603
[email protected]
講義資料等は下記を参照してください.
http://vrl.sys.wakayama-u.ac.jp/DA/
シラバスから1
↑ ほとんど,603に居ます.
シラバスから2
シラバスから3
•
•
•
•
出席は,初回の出席も含みます.
ICカードではなく,講義中に回覧する出席簿を使用して出欠確認.
代返等の事態が発覚した場合,全ての出席を取り消します.
出席していたが,講義時間中に課された課題を未提出の場合は,
欠席と見なす.
• 講義時間中に名前を指定して,質問をします.
生
協
で
テ
キ
ス
ト
を
買
っ
て
お
い
て
下
さ
い
データ構造とは
型=要素型+構造
例:
– 文字型の1次元配列
– 整数型の2次元配列
– 自己参照型の線形リスト
データ構造の種類
全ては要素間の「順序関係」によって決まる。
線形構造:
全順序関係
木構造(束構造): 半順序関係
グラフ構造:
順序関係なし
(2項関係)
データ構造のレベル
論理構造:要素間の関係



線形構造
木構造
グラフ構造
物理構造:メモリ上の配置


順配置
リンク配置
データ構造の例1
• 順配置された線形構造
論理構造
a
b
c
d
e
f
g
h
物理構造
0000
0001
0002
0003
0004
0005
0006
0007
a
b
c
d
e
f
g
h
データ構造の例2
• リンク配置された線形構造
論理構造
a
b
c
d
e
f
g
h
物理構造
0000 a
0003 h
0008 c
000d e
001a g
100b
null
0032
0106
0003
0032 d 000d
0106 f 001a
100b b 0008
データ構造の例2
• リンク配置された木構造
論理構造
a
b
d
h
c
e
f
g
物理構造
0000 a 100b
0003 h null
0008 c 0106
000d e null
001a g null
0008
null
0032 d 0003
0106 f null
100b b 0032
null
null
000d
001a
null
null
アルゴリズムとは
• アルゴリズムとプログラムの違い
– 処理の流れのみが記述されている。
– 停止性が保証されている
プログラム=データ構造+アルゴリズム
講義で取り上げるアルゴリズム
• 線形構造
–
–
–
–
データの整列
整列された線形構造からのデータの探索
表探索
文字列の照合
• 木構造
– 木の走査
– 木の生成と走査
• グラフ構造
– グラフの走査
– 探索への応用
講義の進め方
• データ構造
– 線形構造(+データ抽象化)、木構造、グラフ構造
• アルゴリズム
– 整列、キーの探索、木とグラフの走査、表探索、
文字列照合、状態空間の探索
講義資料等は下記を参照してください.
http://vrl.sys.wakayama-u.ac.jp/DA/