記事ディレクトリ
序文
「Big Data Structure」は Cheng Jie 氏によって書かれた本であり、著者は Cheng Jie 氏によって書かれたこの本に従って、彼のデータ構造学習の旅を記録します。
1. データ構造とは
データ構造は、非数値計算プログラミングの問題における操作オブジェクト、およびそれらの関係と操作およびその他の関連する問題を研究する主題です。
私の理解では、データ構造とはデータ間の関係とデータ間の関係であり、それらの間の論理的関係を調べるために、異なる環境では異なるロジックを使用してデータを送信、受信、保存などを行い、最適なソリューションを模索します。
2. 基本概念と用語
2.1. データ
データ:物事を客観的に説明する記号、コンピューターで操作できるオブジェクト、コンピューターが認識して処理のためにコンピューターに入力できる記号の集まりです。データには、整数型や実数型などの数値型だけでなく、文字、音声、画像、動画などの非数値型も含まれます。
2.2. データ要素
データ要素:データを構成する一定の意味を持つ基本単位で、通常、コンピュータでは全体として扱われ、レコードとも呼ばれます。
2.3. データ項目
データ項目:データ要素は、複数のデータ項目で構成できます。
データ項目は、分割できないデータの最小単位です。
2.4、データオブジェクト
データ オブジェクト:同じ性質を持つ要素の集合であり、データのサブセットです。
2.5. データ構造
データ構造:相互に 1 つ以上の特定の関係を持つデータ要素の集まりです。
データ項目は最小単位であり、データ項目はデータ要素を構成し、同じ性質を持つデータ要素はデータオブジェクトと呼ばれ、データ構造はデータ要素の集まりであることが定義からわかります。
3. 論理構造と物理構造
3.1. 論理構造
論理構造とは、データ オブジェクト内のデータ要素間の関係を指し、次の 4 つのタイプに分けることができます。
1) コレクション構造:構造内のデータ要素が同じコレクションに属していることを除いて、それらの間に他の関係はありません。個々のデータ要素は「等しい」。データ構造におけるセットの関係は、数学におけるセットに似ています。
2) 線形構造:線形構造のデータ要素間には 1 対 1 の関係があります。
3) ツリー構造:ツリー構造のデータ要素間には、1 対多の階層関係があります。
4) グラフィック構造:グラフィック構造のデータ要素は、多対多の関係にあります。
要約すると、論理構造は特定の問題を解決するためのものであり、問題の理解に基づいて、データ要素間の論理関係を表す適切なデータ構造を選択します。
3.2. 物理構造
物理構造:コンピューター内のデータの論理構造のストレージ形式を指し、主に順次ストレージとチェーンストレージを指します。
1) シーケンシャル ストレージ構造:データ要素は連続したアドレスを持つストレージ ユニットに格納され、データ間の論理的および物理的関係は一貫しています。(配列のように)
2) 連鎖ストレージ構造: 18 個のデータ要素が任意のストレージ ユニットに格納され、次に、関連付けられたデータ要素のアドレスがポインターを介して格納され、関連付けられたデータ要素がアドレスを介して検出されます. このストレージ ユニットのグループは連続することができますまたは継続的ではありません。(リンクされたリストのように)
論理構造は問題指向であり、物理構造はコンピューター指向であり、その基本的な目標はデータとその論理関係をコンピューターのスレーブ メモリに格納することです。
4. 抽象データ型
4.1、データ型
データ型とは、同じプロパティを持つ値のセットと、このセットで定義されたいくつかの操作の一般的な用語を指します。C 言語では、データ型は異なる値に従って 2 つのカテゴリに分けることができます。
1) 原子型:整数、実数、文字などを含む、分解できない基本的な型です。
2) 構造型:いくつかの型から構成されており、分解することができます。たとえば、整数配列は複数の整数データで構成されます。
4.2. 抽象データ型
抽象データ型は、数学モデルと、モデルで定義された一連の操作を参照します。抽象データ型の定義は、一連の論理特性のみに依存し、コンピューティングおよび内部での表現および実装方法とは何の関係もありません。たとえば、PC、タブレット、携帯電話などにはすべて、整数演算も必要な「整数」型があるため、プラスチックは抽象的なデータ型です. 上記のコンピューターではさまざまな方法で実装されている可能性がありますが、そのため、数学的特性は同じであり、コンピューターの観点からは同じです。したがって、「抽象」の意味は、データ型の数学的抽象プロパティにあります。
抽象データ型は、定義および実装されたデータ型だけでなく、座標系など、プログラムを設計するときにコンピュータープログラマーによって定義されたデータ型も指します. x, y を持つ点の抽象データ型を定義できます. z は 3 つの整数変数なので、ポイント データ変数を操作することで、このポイントの座標を簡単に知ることができます。
抽象データ型の定義によれば、このモデルで定義された一連の操作も含まれます。たとえば、ゲームでは、歩く (前進、後退、上、下)、ジャンプ、弾丸を打つなど、いくつかの基本的な操作を定義します。抽象データ型は、データ オブジェクト、データ オブジェクト内のデータ要素間の関係、およびデータ要素に対する操作を定義します. 抽象データ型に必要な操作については、設計者が仕様に従って決定するだけで済みます.実際の状況。
実際、抽象データ型は、プログラミングにおける問題の分解、抽象化、および情報の隠蔽の特性を体現しています。抽象データ型は、実生活の問題を複数の小規模で扱いやすい問題に分解し、コンピューターで処理できるデータ モデルを構築し、各機能モジュールの実装の詳細を独立した単位として扱います。 、そのため、特定の実装プロセスは隠されています。
抽象データ型の標準形式:
ADT 抽象数据类型名
Data
数据元素之间逻辑关系的定义
Operation
操作1
初始条件
操作结果描述
操作2
...
操作n
...
endADT
要約する
データ構造とは、相互に1つ以上の特定の関係を持つデータ要素の集まりです.さまざまな角度からさまざまな分類があります.たとえば、論理構造に従って、セット構造、線形構造、ツリー構造、およびグラフ構造があります. ; 物理構造の分類には、順次記憶構造と連結記憶構造が含まれます. 最後に、データ型、抽象データ型の定義、およびその記述方法について簡単に理解し、今後のコースの基礎を築きます.