1. 程式人生 > 其它 >2021-2022-1學期 20212323 《網路空間安全專業導論》第四周學習總結

2021-2022-1學期 20212323 《網路空間安全專業導論》第四周學習總結

收穫


第八章 抽象資料型別與子程式

8.1 抽象資料型別

  • 抽象資料型別(ADT):屬性(資料和操作)明確地與特定實現分離的容器。
  • 資料結構:一種抽象資料型別中的複合資料域的實現。
  • 容器:存放和操作其他物件的物件。

8.2 棧

LIFO 後進先出
插入:Push(推進),刪除:Pop(彈出)

8.3 佇列

FIFO 先進先出
插入:Enqueue、Enque、Enq、Enter、Insert.
刪除:Dequeue、Deque、Deq、Delete、Remove.

8.4 列表

  • 列表屬性特徵:專案是同構的;專案是線性的;列表是變長的。
  • 鏈式結構:一個將資料項和找到下一項位置的資訊儲存到同一容器的實現方法。

8.5 樹

8.5.1 二叉樹

  • 二叉樹:具有唯一起始節點(根節點)的抽象複合結構,其中每個節點可以有兩個子女節點,根節點和每個節點之間都有且僅有一條路徑。
  • 根:樹中唯一的開始節點。
  • 葉節點:沒有子女的樹節點。

8.5.2 二叉檢索樹

1.在二叉檢索樹中搜索
2.構造二叉檢索樹
3.輸出二叉檢索樹中的資料

8.5.3 其他操作

8.6 圖

  • 圖:由一組節點和一組把節點相互連線起來的邊構成的資料結構。
  • 頂點:圖中的節點。
  • 邊(弧):表示圖中兩個節點的連線的頂點對。
  • 無向圖:其中的邊沒有方向的圖。
  • 有向圖:其中的邊是從一個頂點指向另一個頂點(或同一個頂點)的圖。
  • 鄰頂點:通過邊連線起來的兩個頂點。
  • 路徑:連線圖中兩個頂點的一系列頂點。

8.6.1 建立圖

建立一個表格:

  • 在表格中新增一個頂點
  • 在表格中新增一條邊
  • 在表格中新增一個權值

8.6.2 圖演算法

1.深度優先搜尋(儘可能往更遠的路徑檢查)
2.廣度優先搜尋(優先檢查所以與起點相鄰的頂點)
3.單源最短路搜尋

8.7 子程式

8.7.1 引數傳遞

  • 引數列表:程式中兩部分之間的通訊機制。
  • 形參:列在子程式名後的括號中的識別符號。
  • 實參:子程式呼叫中列在括號中的識別符號。

8.7.2 值參與引用引數

  • 值參:由呼叫單元傳入實參的副本(寫在留言板上)的形參。
  • 引用引數:由呼叫單元傳入實參的地址(寫在留言板上)的形參。

第九章 面向物件設計與高階程式設計語言

9.1 面向物件方法

9.1.1 面向物件

  • 物件:在問題背景中相關的事物或實體。
  • 物件類或類:一組具有相似的屬性和行為的物件的描述。
  • 欄位:表示類的屬性。
  • 方法:定義了類的一種行為的特定演算法。

9.1.2 設計方法

頭腦風暴、過濾、場景階段、責任演算法階段。
1.頭腦風暴
2.過濾
3.場景

  • 封裝:把資料和動作集中在一起,使資料和動作的邏輯屬性與它們的實現細節分離。
    4.責任演算法
    5.總結

9.1.3 示例

9.2 翻譯過程

9.2.1 編譯器

  • 編譯器:把用高階語言編寫的程式翻譯成機器碼的程式。

9.2.2 直譯器

  • 直譯器:輸入用高階語言編寫的程式,指導計算機執行每個語句指定的動作的程式。
  • 位元組碼:編譯Java原始碼使用的標準機器語言。

9.3 程式設計語言範型

9.3.1 命令式範型

1.面向過程的範型
2.面向物件的範型

9.3.2 宣告式範型

1.函式式模型
2.邏輯程式設計

9.4 高階程式設計語言的功能性

9.4.1 布林表示式

  • 布林表示式:一個識別符號序列,識別符號之間由相容的運算子分隔,求得的值是true或false。

9.4.2 資料歸類

  • 強型別化:每個變數都有一個型別,只有這種型別的值才能儲存到該變數中。
  • 資料型別:一組值以及能夠應用於這種型別的值的基本操作集合的說明。
    1.資料型別
    整數、實數、字元、布林型、字串。
    整數、實數、字元和布林型稱為簡單資料型別或原子資料型別。
    2.宣告
  • 宣告:把變數、動作或語言中的其他實體與識別符號關聯起來的語句,使程式設計師可以通過名字引用這些專案。
  • 保留字:一種語言中具有特殊意義的字,不能用它作為識別符號。
  • 區分大小寫:大寫字母和小寫字母被看作是不同的;兩個拼寫方法相同但大小寫形式不同的識別符號被看作是兩個不同的識別符號。

9.4.3 輸入/輸出結構

9.4.4 控制結構

  • 控制結構:確定程式中的其他指令的執行順序的指令。
    1.巢狀邏輯
    2.非同步處理
  • 非同步:不與計算機中的其它操作同時發生;換句話說,與程式的操作不同步。也叫做事件驅動處理,通常被用在Java和VB.NET中。

9.5 面對物件語言的功能性

面對物件語言的基本構造是類。

9.5.1 封裝

  • 封裝:實施資訊隱蔽的語言特性。
  • 物件(問題求解階段):與問題背景相關的事物或實體。
  • 類(實現階段):物件的模式。
  • 物件類或類(問題求解階段):屬性和行為相似的一組物件的說明。
  • 物件(實現階段):類的一個例項。

9.5.2 類

  • 例項化:建立類的物件。

9.5.3 繼承

  • 繼承:類獲取其他類的屬性(資料欄位和方法)的機制。
  • 超類:被繼承的類。
  • 派生類:繼承的類。
    是一種is-a關係

9.5.4 多型

  • 多型:語言在執行時確定給定呼叫將執行哪些可能的方法的能力。

9.6 過程設計與面向物件設計的區別

  • 面對物件的設計中,列表資料結構和子程式需要在類中繫結在一起;
  • 面向過程的版本中,列表被呈現為傳遞給子程式的記錄,以便子程式可以對其操作。