データ構造
基本的には以下の基本構造があれば一通りのものが作れる。
リンク(ポインタ)
グラフ
木(ツリー)
ネットワーク
グラフの表現は、リンクを使う方式と2次元表を使う方式がある。
2つのノードの結合を示すので、自己再帰も含めて$ n^2 の表があれば表現できる。
データ構造を決定する時の考慮点
物理的配置が必要となる。
位置、順番が生じる。
アクセス速度が問題となる。
精度
高い精度には情報量が必要となる。
関連性(依存性)
データ構造は暗黙の関連性をもたらす。
ポインタは指す先の正当性を保証しない。
データ構造を作るのに、言語によって事前に宣言が必要な場合とそうでない場合とがある。
JavaScript では宣言は必要がない。Object クラスが辞書のデータ構造になっている。
C/C++ では構造体として宣言が必要となる。
Java や C++ ではクラスとして宣言が必要となる。
宣言が必要であるにもかかわらず、項目の有無を動的に扱うには辞書を使うしかない。
項目数、種別が限定的な場合には、使わない項目に null 値を入れておくなどする方法はある。