データの構造
第一章:はじめに
1.いくつかのタイプを含むデータ記憶構造は?いくつかのタイプを含む論理データ構造?
ストレージ構造は、シーケンシャルストレージ、チェーン店、インデックス格納、ハッシュが格納されているが含まれています。
線形構造を含む論理構造、
非線形構造(ツリー構造、パターン(ネット)構造のセット)
2.データ構造は、どのような主題の研究でありますか?
データ構造が研究され、非数値的なプログラミングの問題で、操作対象のコンピュータとオブジェクト間の関係と動作のオブジェクトに適用などの被験者。
3.データ要素間の関係は、コンピュータ内のいくつかの表現がありますか?特徴は何ですか?
表現の4種類:
- シーケンシャルストレージ
データ記憶要素の順序は、各ストレージノードは、一つの要素が含まれています。データ要素間の論理関係を反映する保管場所。記憶密度が、いくつかの操作(例えば、挿入、削除)低効率。
- チェーンストレージ
各ストレージノード備えるが、他にも情報が外部データ要素のセット(少なくとも一つ)を含有します
ポインター。ポインタは、データ要素間の論理的な関係を反映しています。本実施形態では、連続した記憶空間を必要としない動的な動作(例えば、挿入、削除、等)を容易にするが、(ポインタのための)大規模なストレージスペースオーバーヘッド、さらにバイナリ検索できないなど。
- インデックスストレージ
連続したメモリアドレス空間を除いて、まだインデックステーブル、インデックステーブル(インデックス)記憶域またはエンドポイント(添字、高密度非インデックス付け)の記憶ノードエントリーを示す格納位置インデックスに格納されたデータ要素を確立する必要があり、かつ静的および動的特性。
- ハッシュ・ストレージ
ハッシュ関数と競合解消方法を使用して、連続したアドレス空間内のハッシュキーは、限定されるものではなく、キーワードを含む要素のアドレスを格納するハッシュ関数の値を解釈しています。アクセス速度、キーワードだけにランダムアクセス、ないシーケンシャルアクセスが特徴で、アクセスはバイナリにすることはできません。
4.データ型と抽象データ型がどのように定義されていますか?2間の類似点と相違点は何ですか?抽象データ型があるの主な機能は何ですか?ADTは使用しての主な利点は何ですか?
「データタイプ」などの操作や値の組の集合である概念のプログラミング言語であるCの言語の整数、実数、文字などが挙げられます。整数値(整数特定のマシンを有していなければならない)動作に加え、減算、乗算、除算など余り。実際には、データタイプがされ達成されたユーザ・データ構造に製造業者によって提供します。
「ADT」とは、数学的モデルとモデルで定義された操作のセットを指します。データ型という意味で、「抽象」の数学的な抽象化が特徴。抽象データ型定義は、唯一の論理的な特性に依存し、その実装に依存しないと、コンピュータのどの内部を表して。かかわらず、その内部構造変化の、限りそれはその外部使用変わらない数学的特性に影響しないよう。
抽象データ型とデータ型は、基本的な概念ではありませんが、抽象データ型の広い範囲が、それがされなくなりましマシンに限定して定義されたデータタイプを達成するためにさらに含む、ソフトウェアシステムの設計では、ユーザのデータ型を自己定義です。
含むソフトウェアモジュール用いて抽象データ型定義定義は、実現表し実装の詳細を知らなくても、ユーザ(インタフェースを提供する)に対して透明で一緒に包装三つの部分を、。
抽象データ型は、プログラムの設計は、もはや、しかし一歩前進「科学」を「芸術」であることを確認しないように見えます。
5。
- 当然のデータ構造では、データの論理構造、データ記憶構造は、運転データとの間の関係とは何かありますか?
ロジック(即ち、データ要素または「隣接」との間の関連方法)データ要素間のデータの論理構造を反映しています。
データ記憶構造は、コンピュータで表現されるデータ構造であり、データ要素間の関係を示す表示を含みます。
計算されたデータは、データ定義の操作のセットで、動作が定義された論理構造から独立している、およびストレージ構造、動作および実装は、ストレージ構造を依存します。
- 同じ論理構造が、異なるストレージ構造は、異なるデータ構造だった場合。この引数、右?イラスト。
同じ論理構造が、異なるストレージ構造は、異なるデータ構造であってもよいです。
たとえば、次の構造リニアリニア形、シーケンステーブルの順次記憶構造に属する論理構造、チェーンストレージ構造の使用は、線形リストと呼ばれています。
- 所定の論理構造及び格納上の異なるオペレーションのセットは、これにより異なるデータ構造を定義することができます。この引数、右?例を示します。
ペアスタックのキュー同じ論理構造、同じであってもよい記憶が、その理由の(及びチェーン店順次記憶)異なる動作セットと異なるデータ構造と呼びます。
- 異なるデータ構造の多様性は、どのような評価基準でありますか?
データ構造の評価は非常に二つの側面を考慮し、複雑になっています:
まず、選択されたデータ構造は、問題の基本的な機能について説明正確かつ完全です。
第二は、簡単実装するかどうか(例えば、データの分解が適切です。
論理構造を選択するかどうかは、関数の計算に適応し、
これは、操作の実現を助長しています。
選択の基本的な操作)が適切です
6. A良い評価アルゴリズム、あなたが考慮しているいくつかの分野?
良い評価アルゴリズムは、4つの側面があります。
ワン:アルゴリズムの正しさ
II:アルゴリズム読みやすさ
3:アルゴリズムの堅牢性
4:アルゴリズムの時間と空間効率(効率と低メモリ要件)
7.各グループの概念を説明し、比較します:
- アルゴリズムの時間複雑
アルゴリズムの時間計算量は、アルゴリズムの入力サイズの関数。
問題のアルゴリズムのサイズ又はスケールを入力としてアルゴリズムに入力されるデータが含まれるデータ要素の数であり、この数または他のパラメータに関連して。時には、平均時間の最悪のケースの時間計算量や複雑さのアルゴリズムを検討してください。
- アルゴリズム
アルゴリズムれる特定の問題解決のステップについて記載し、各命令は、1つのまたは複数の動作を表す命令の有限シーケンスです。アルゴリズムは、5つの重要な特性を持っている:貧しい、確実性、実現可能性、入力と出力があります。
- 周波数
アルゴリズムの時間複雑性を分析する際に、原稿が操作の回数まで実行される基本動作の動作を推定する必要がある場合があり、操作が繰り返される回数は、周波数と呼ばれます。
8. データ構造とデータ型の違いは何ですか?
当然の名前として、まず、2番目は、科学的概念としてある:「データ構造」という用語は、2つの意味があります。科学的な概念としては、一般的に、と考えられている三つの側面、データの論理構造、データ記憶構造、操作データを含めるようにデータ構造を議論するために、一般に認められた定義はありません。
「データタイプ」は、セットの値の集合であり、データ構造は、簡略化された場合であり、前者が達成されているような動作を考慮することができます。
9. メイクの主な要因は、アルゴリズム(またはプログラム)の効率に影響を与える時間の短いリスト、および要因は、アルゴリズム(またはプログラム)自体が直接関係していることを指摘しました。
主な考慮事項の時間ランニング前推定アルゴリズム問題の「規模」と「基本操作」アルゴリズムの実行の数を。
「スケール」の問題が参照解決すべき問題の数、そのようなアルゴリズムの実行時間に影響を与える主な要因である要素の数、要素の数より、検索するために必要なより長い時間を見つけるように、。
「基本操作」のアルゴリズムは、主に特定の問題解決に作動する基本的な操作を実行するための基本的な操作、短い走行時間、回数を行う頻度は低い、要素間の比較演算は、基本的な操作として見ることができます見つけるために、このような操作のように、より多くの、より長い時間を実行しています。