2019-2020-1学期20192409「サイバースペースのセキュリティ専門家の紹介、」学習の要約の4週目

抽象データ型およびサブプログラムの章VIII

1.抽象データ型

抽象データ型(データ型の抽象、ADT) 属性(データ及び操作)明確に分離容器と特定の実装。
設計目標は、抽象化によって複雑さを軽減することです。論理層は、有用な構造とその処理操作を定義している場合、あなたは簡単にそれらを使用することができます。
アプリケーション(またはユーザ)は、問題の特定の層のためのデータを示す図です。ロジック(又はアブストラクト)層は、データ値(ドメイン)及び処理動作のそれらの抽象図です。明確な層構造は、データ項目を格納し、データ操作韓国プログラミング言語を符号化するために実装示されています。このビューは、明示的なデータフィールドおよびサブルーチンを持つオブジェクトのプロパティを表します。
データ構造(データ構造):複合データフィールドに抽象データ型を実装します。
容器(コンテナ):ストア・オブジェクトと操作の他のオブジェクト。

2.スタック

抽象複合構造体がスタックされ、スタックは、要素の一方の端部からアクセスすることができます。要素は最初の場所に挿入することもできますし、最初の要素を削除することができます。LIFOと呼ば会計士、すなわち、LIFO(ラストインファーストアウト)の略。
引数のスタックからのアクセスの動作を説明するもう一つの方法は、削除されたアイテムは常にスタック内の最短時間項目です。観測スタックこの点からも、より抽象的です。任意の制約せずに操作を挿入し、全体LIFOの動作が削除操作に反映されます。

プッシュ:挿入操作(前進)。
POP:削除(ポップアップ)。
例:
WHILE(より多くのデータ)
の読み取り値
プッシュ(myStack、値)
WHILE(NOTのisEmpty(myStack))
ポップ(myStack、値)
の書き込み値

注:この表は、出力値の順序は逆を行うを決定するためのアルゴリズムをチェックします。

3.キュー

他から引き出さ端からキュー項目、。、FIFOと呼ばれる会計士即ち、の略語FIFO(先入れ先出し)。キュー(頭)の前に削除操作のREAR挿入操作キュー(テール)。
キュー引数に記載されている別のアクセス行動は常にキュー最長のプロジェクトで削除されます。このような観点から観察コホートはもっと抽象的です。スタックのような、任意の制約なしの挿入操作、全FIFOの動作は、削除操作に反映されています。残念ながら、関連用語の標準的な挿入や削除がありません。エンキューは、Enqueは、のEnqは、入力し、インセットに挿入操作を表現することができます。デキューは、両端キューが、DEQは、削除し、削除操作を表現することができる取り外します。

例:
WHILE(より多くのデータ)
の読み取り値
enque(MYQUEUE、値)
WHILE(NOTのisEmpty(MYQUEUE))
のDeque(MYQUEUE、値)
の書き込み値

4.一覧

3つのプロパティは、リストを備えています

  • プロジェクトが同型であります
  • プロジェクトが直線的です
  • リストが長くなっています

リストは抽象的構造であると誤解配列、配列が埋め込まれた構造を、リストアップしないでください。しかし、アレイで使用リスト。
リストには、鎖状構造のための画像とすることができます。

鎖状構造(構造は連結):同じ容器の実装に次の記憶位置に情報及びデータを見つけます。鎖構造は、ノードの概念に基づいています。データとユーザの次のノードポインタまたはリンクへのポイントのリスト:ノードは2つの部分から構成されています。最後のポインタ変数ノードリストがシンボルの終了を示すリストに格納され、それぞれ、「/」と、典型的にはヌルです。

  • 注文番号なしリストは重要ではありませんが、プロジェクトは意志でそれに入れました。
  • 項目間の意味関係で、リストを命じました。すべてのプロジェクトの最初の項目に加えて、何らかの関係があります。最後の項目に加えて、すべての項目が同じ関係を有しています。

5.ツリー

(1)二分木

バイナリ(二分木):各ノードは、1および2つの子ノードは、ルートノードと各ノードとの間の唯一の経路を有することが可能な固有の開始ノード(ルートノード)抽象複合構造を有します。
ルート(ルート):ツリーが唯一のノードを起動します。
リーフノード(ノード・リーフ):子ツリーノードなし。

(2)二分探索木

ソートされたリストのようなバイナリ検索ツリー、セマンティックソートは、ノード間に存在します。

  • バイナリツリーを持つ二分探索木属性、それは、二分探索木のノードは、ゼロ、1または2人の子供を持つことです。
  • つまり、ノードのいずれかの値がその左のサブツリー内のすべてのノードの値よりも大きく、かつ、その右のサブツリー内のすべてのノードよりも小さくなければなりません、さらにノードツリーの値を特徴づける意味属性を持つバイナリ検索ツリー値。
内のバイナリ検索ツリーの検索で

算法:
++ IsThere(木、アイテム)++
IF(木がnull)
はfalseを返す
ELSE
(項目は(木)に等しい)のIF
RETURN TRUE
ELSE
IF(項目<インフォ(木))
IsThere(左(木)、項目)
ELSE
IsThere(右(木)、アイテム)

構築されたバイナリ検索ツリー

算法:
++ 挿入図(ツリー、アイテム)++
(木がnull)のIF
ツリー内の項目を入れて
ELSE
(項目<インフォ(木))のIF
を挿入(左(木)、アイテム)
ELSE
挿入(右(木)、項目)

二分探索木のデータ出力

算法:
++ 印刷(木)++
IF(木がNULLでない)
印刷(左(木))//再帰呼び出しR1の
書き込み情報(ツリー)
を印刷(右(木))//再帰呼び出しR2

(3)他の動作

コンピューティングノード

算法:
++ 長さ(ツリー)++
(ツリーがヌルである)IF
RETURN 0
ELSEの
RETURN長(左側(ツリー))+長さ(右(ツリー))+ 1

6。

図(グラフ):ノードの集合とその縁のデータ構造を相互接続するノードの集合。
頂点(頂点):グラフ内のノード。
エッジ(アーク)(エッジ(ARC)):図頂点は、2つの接続されたノードを表します。
無向グラフ(グラフ無向):図中の特徴ない辺方向。
有向グラフ(有向グラフ):エッジが、図中(または頂点)が互いに頂点の頂点から導かれることを特徴とします。
O頂点(隣接ヴェル):2つの頂点は、エッジによって接続されています。
経路(パス):接続図2つの頂点の頂点のリスト。

(1)グラフを作成

テーブルを作成するには、次の操作が必要です

  • テーブルで頂点を追加
  • サイドテーブルを追加します。
  • テーブルに体重を追加

(2)アルゴリズム図。

深さ優先探索

私たちは、頂点の訪問を格納するスタックと、2つの頂点間のパスを見つけることを試みたとき。隣接する頂点の深さと起点を有する第1チェックする最初の検索。それが最後である場合は、検索が終了します。それ以外の場合は、全ての隣接頂点終わりで最初に確認してください。
同時に、我々は必要なときに、彼らが使用され、出発点と他の近隣の頂点を保存する必要があります。最初の頂点から始まる経路と隣接する開始点が存在しない場合、我々は頂点に戻り、そうで第二の頂点、第三の頂点などを試みます。私たちは限り各ノードへのアクセスなどの経路に沿ってたいので、エンドポイントは背中に見つからない場合、そのスタックは、頂点を格納するための適切なデータ構造です。

BFS

幅優先探索では、我々は最初の頂点から始まるパスを見つけるために、可能な限りバックに行きたいです。だから、スタックは、適切なデータ構造を探して、以前のパスはなくなりました。これは、要素の逆の順序は、パスの先頭に最新の要素を、すなわち保持するために表示されています。

シングルソースの最短検索

7.サブルーチン

(1)伝送パラメータ

パラメータ(パラメータリスト)のリスト:プログラムの2つの部分間の通信機構。
パラメータ(パラメータ):サブルーチンの識別子の名前の後の括弧内に記載されています。
引数(引数):カッコサブルーチンコール内の識別子列。

(2)参加基準パラメータの値を

基準値(パラメータ値):パラメータの単位着信引数のコピー(メッセージボードに書きます)。
参照パラメータ(パラメータリファレンス):パラメータの呼び出しユニットアドレスによって渡される引数(メッセージボードを作成します)。

概要

  • リスト、スタック、キュー、木や複合構造体は、便利な抽象化されています。
  • リストや木は、同じ属性を持つ:要素が削除され、検索、挿入することができます。
  • リスト、スタック、キュー、木は単にコンテナ構造ですが、より複雑な図です。
  • サブルーチン宣言サブアルゴリズムは、独立して実施することができます。

章IXの顔画像のデザインと高レベルのプログラミング言語

1.オブジェクト指向方法

オブジェクト指向

オブジェクト(オブジェクト):バックグラウンドで物事またはエンティティに関連する問題。
オブジェクトクラス(オブジェクトクラス)、またはクラス(クラス):グループを記述は、同様の特性とオブジェクトの挙動を有します。
フィールド(フィールド):クラス固有の項目は、データまたはサブルーチンであってもよいです。
方法(この方法は、) クラスのアルゴリズムの振る舞いを定義します。

設計法

  • ブレインストーム:クラスの問題の第一段階を決定します。
  • フィルター:レビューグループディスカッションは、これらのクラスを組み合わせることができ、これは、クラスが不足しているを見て、クラスの段階を決定します。
  • シーン:各クラスの振る舞いを決定します。
  • 責任アルゴリズム:アルゴリズムが記載されているすべてのカテゴリの責任のために書かれました。

コンピュータの例

2.翻訳プロセス

コンパイラ

コンパイラ(コンパイラ):マシンコードに高レベルの言語を使用して、翻訳プログラム。
プログラムの初期のコンパイラ出力のアセンブリ言語バージョン、マシンのアセンブラ言語プログラムの実行可能ファイルを取得するために通過するプロセスのこのバージョン。翻訳プロセスのより深い理解は、コンパイラはより複雑になるとコンピュータ科学者として、アセンブリ言語のステージはしばしば省略されています。

翻訳者

翻訳(通訳):各ステートメントで指定されたアクションを実行するための高レベルの番組ガイドプログラム、コンピュータで作成された言語を入力します。
バイトコード(バイトコードザ):標準的な機械語を使用してJavaソースコードをコンパイル。

3.プログラミング言語のパラダイム

命令型のパラダイム

  • プロセス指向パラダイム
    プロセス指向のプログラミングモデルは、ステートメントがルーチンになってグループ化されているコマンドタイプです。サブルーチンプログラムは、異なるレベルで構成され、それぞれの層は、全体の問題を解決するために必要な特定のタスクを実行します。このモデルで記述コードサンプル。私たちは、サブルーチンを書き、それに必要なデータを渡すことによって、その機能を達成します。
  • オブジェクト指向のパラダイム
    オブジェクト指向視点のオブジェクトと対話する方法です。各オブジェクトは、独自のアクションの実装を担当しています。オブジェクト指向のパラダイムでは、データオブジェクトがアクティブです。各オブジェクトは、それらの動作の制御に責任があるように操作コードオブジェクトとオブジェクトは、一緒に結合しました。

宣言型パラダイム

宣言型パラダイムが記述されたモデルの結果である、それは結果を説明したプロセスを完了していません。

  • 機能モデル
    機能モデルは、機能の数学的概念に基づいています。評価関数の計算をすることによって達成され、問題解決は関数呼び出しによって達成されます。そのため、基本的な原理は、評価関数という、むしろ変数と代入文よりもです。

  • ロジックプログラミング
    記号論理の原則に基づいて、論理プログラミング。このモデルは、オブジェクトとオブジェクト間の関係の一連のルールについての事実のセットが含まれています。プログラムは、これらのオブジェクトとの関係に事実と規則によって推測することができる質問を伴います。答えをプッシュするロジックのルールに潜在的な問題を解決するためのアルゴリズムは、事実とルールを示しています。

    前記ハイレベルの関数型プログラミング言語

    (1)ブール式

    ブール式(ブール式):識別子の配列、分割された互換性のあるオペレータの間で識別子は、見つかった値が真であるか偽です。
    ブール式を指定できます。
  • ブール変数
  • 演算式に結合された演算式プラス関係演算子、
  • ブール式ブール演算子プラスプラスブール式

(2)データが分類します

強く型付けされた(強い型付けは):各変数は、変数の値のみ、このタイプ格納することができるタイプを有しています。
データ型(データ型):値のセットと基本的な動作値は、コレクションのこのタイプに適用できます。
カテゴリー

  • 整数
  • リアル
  • 文字
  • ブーリアン

  • ステートメントの
    ステートメント(宣言):文の変数、アクションまたは他のエンティティの識別子に関連する言語、プログラマは名前によってこれらのプロジェクトを参照することができるように。

予約語(予約語):言葉は特別な意味を持っている言語は、識別子として使用することはできません。
大文字と小文字を区別(大文字小文字を区別):大文字と小文字が異なると考えられる。同じ形の2つのスペルが異なる文字識別子は、2つの異なる識別子と見なされます。

(3)入力/出力構造

(4)制御構造

制御構造(制御構造):プログラム内の他の命令の実行順序を決定します。

ネストされたロジック
非同期処理

非同期(非同期):これは、コンピュータで他の動作と同時に発生しない。換言すれば、コンピュータの動作が同期していません。

オブジェクト指向言語の機能

(1)パッケージ

パッケージ(カプセル):秘密情報の態様言語機能。
オブジェクト・クラスまたはクラス(問題解決ステージ)(オブジェクト・クラスまたはクラス(問題解決フェーズ)):オブジェクトの同様のセットの特性の説明と動作。
オブジェクト(問題解決のフェーズ)(オブジェクト(問題解決フェーズ)):問題の背景に関連したものまたはエンティティ。
オブジェクト(実施段階)(オブジェクト(実施フェーズ)) クラスのインスタンス。
クラス(実施段階)(クラス(実装フェーズ)) スキーマ・オブジェクト。

(2)クラス

(インスタンス化)の例としては:オブジェクト・クラスを作成します。

(3)継承

継承(継承):他の属性(データフィールドとメソッド)を取得するためのクラス・ベースの機構。

(4)多型

多型(多型):同じ名前の言語の継承アーキテクチャは、能力に応じて二つの方法があり、オブジェクトの適切な方法を適用することが可能です。

6.プロセスの違いやオブジェクト指向設計

概要

  • オブジェクト指向設計は、フォーカスオブジェクトの問題を識別するためであり、そしてクラスにそれらアブストラクト(パケット)へのオブジェクトの特性に応じと動作です。
  • アセンブラは、マシンコードにアセンブリ言語プログラムを翻訳することができます。
  • 高レベルのプログラミング言語の様々なモデルがあります。
  • ブール式は、プログラムの状態に関するアサーションです。
  • 各プログラムは、独自の変数のデータ型を持っています。

おすすめ

転載: www.cnblogs.com/20001009fxy/p/11767764.html