はじめにプログラム言語の文法:Cに組み込まれたアルゴリズムとデータ構造↓ 本講義:プログラム言語に組み込まれていないデータ構造 ↓ アルゴリズム論:プログラム言語に組み込まれていないアルゴリズム |
|
図 |
|
データ構造データ構造:”データ要素”(文字、数、・・・、真理値など)の集まり 集合、群、体、半群、graph(2項関係),オートマトン ★主題1. データ構造にはなにがあるのか? ★主題2. データ構造を計算機上にいかに実現するか? 空間計算量は? ある問題に対する計算量は? ★主題3. 与えられた抽象構造を利用可能な論理構造で、いかに実現するか? ☆記法 データ構造は2項組(対象、対象上の関係(演算))と書かれる。 例 データ構造の例 群 G=(S,O) 自然数 N = (N, {+, -, /, ×, ↑}) 配列処理系 = ({配列},{配列要素の参照、指数計算}) 集合処理系 = (集合,{∪,∩,...}) |
|
グラフとリスト グラフ:ネットワークを表現 グラフ処理系:({グラフ},{∪,∩,探査など}) |
|
グラフとリストの基本概念 用語 定義 Vを有限集合とする G=(V,E) をgraphという。ここで、 E⊆V×Vの元をedge(辺) Vの元をvertex(頂点)又はnodeという 例 グラフとその図示 G1 = {{a,b,c},{(a,b), (b,c)}} と書かれる。 G2 = {{a,b,c},{(a,b),(b,c),(c,b)}}は と書かれる。 |
|
用語 ”List”は"record"の集まり。 ここで、recordは次のような形 で、各 は"field"といい 各fieldには次の2種類のいずれかが入る: 他レコードへの"ポインタ"、 数または文字列、真理値 例 G1に対応 |
|
例 データ構造 i 抽象レベル(グラフ) G3 = (V3,E3) V3 = {COBOL, FORTRAN, Basic, PL/I, ada, ALGOL. C, PASCAL, Modula2, アセンブラ語} E3 = {(COBOL, PL/I), (FORTRAN, PL/I), ... } 手続き型言語の系譜 |
|
ii 中間言語レベル(リスト) G3に対応するリストの例 |
|
iii 言語レベル(C言語の場合) [テーブル表現] struct Languages{ char[10] Name; int suc1; int suc2; int suc3; } struct Languages program_languages[20]; |
|
実現例 program_languages[20] |