「アルゴリズム+データ構造=プログラム」
——ワース(パスカル言語の父、構造化プログラミングの先駆者、スイスの有名な科学者)
1. データ構造の概念
データ構造は、現実世界のデータとそれらの関係を反映したもので、論理構造とストレージ (物理) 構造の 2 つのレベルで説明できます。
2. 論理構造
データの論理構造とは、さまざまなデータ要素間の論理的関係を指し、ユーザーが認識できるデータ要素の編成形式です。
1.組み立てる
コレクション内のデータ要素間の関係は「緩やか」です。
2. 線状構造
線形構造内のデータ要素間には「1 対 1」の関係があります。
3. ツリー構造
ツリー構造内のデータ要素間には「1 対多」の関係があります。
4. グラフィック構造
グラフ構造内のデータ要素間には「多対多」の関係があります。
場合によっては、論理構造が 2 つのカテゴリに分類されることもあります。1 つは線形構造で、もう 1 つは非線形構造(セット、ツリー、グラフ) です。
3. ストレージ (物理) 構造
データの記憶(物理)構造は、コンピュータ内のデータの論理構造を実現したものです。
1. 逐次保存方法
シーケンシャル格納方式とは、全てのデータ要素を連続した格納空間に格納し、論理的に隣接するデータ要素の対応する物理的位置も隣接させる、つまりデータ要素の論理的位置関係と物理的位置関係を一致させることをいう。
2. チェーンストレージ方式
チェーン ストレージ テクノロジは、データ要素を任意の物理的な場所に格納します。各データ要素に対応するストレージ表現は 2 つの部分で構成され、1 つの部分はデータ要素の値自体を格納でき、もう 1 つの部分は論理関係を表すポインタの格納に使用されます。データ要素は追加のポインターによって示されます。
3. インデックスの保存方法
インデックス格納方式では、データ要素を格納する際にインデックステーブルを追加します。インデックステーブルの各項目は、データ要素を一意に識別できるデータ項目であるキーワードとアドレスとを含み、アドレスはデータ要素の格納アドレスまたは記憶領域の先頭アドレスを示す。
4. ハッシュ(ハッシュ)の保存方法
ハッシュ(ハッシュ)格納方式とは、データ要素を連続した領域に格納する方式であり、各データ要素の具体的な格納アドレスがデータ要素のキー値となり、ハッシュ(ハッシュ)関数によって直接計算されます。
上記の 4 つの保存方法のうち、シーケンシャル ストレージとチェーン ストレージは最も基本的でよく使用される 2 つの保存方法であり、インデックス ストレージとハッシュ ストレージは検索効率を向上させるためによく使用される 2 つの保存方法です。
4. データ操作
データの操作とは、データを何らかの方法で処理することであり、データ操作とも呼ばれます。
一般的に使用される操作は次のように要約できます。
1.作成操作: データのストレージ構造を確立します。
2.破棄操作: 既存のストレージ構造のすべてのスペースを解放します。
3.挿入操作: 指定された新しいデータ要素をデータストレージ構造の適切な位置に追加します。
4.削除操作: 指定された条件を満たすデータ記憶構造内のデータ要素を削除します。
5.検索操作: データ格納構造内で指定された条件を満たすデータ要素を検索します。
6.変更操作: データストレージ構造内のデータ要素の値を変更します。
7.トラバース操作: 特定のパスに従ってデータ ストレージ構造内の各データ要素を訪問し、一度だけ訪問します。