2021-2022第一學期20212423《網路空間安全導論》第四周學習總結
第八章 抽象資料型別和子程式
一、抽象資料型別(ADT)
屬性(資料和操作)明確地與特定現實分離的容器
1.觀察資料:應用層(特定問題中的資料的檢視)、邏輯層(資料值域和處理它們的操作的抽象檢視)、實現層(明確表示出了存放資料項的結構,並用程式設計語言對資料的操作進行編碼)
2.資料結構:一種抽象資料型別中的複合資料域的實現
3.容器:存放和操作其他物件的物件
二、棧
定義:一種抽象複合結構,只能從一端訪問棧中的元素,採用後進先出的模式(刪除的項總是在棧中最短的專案)
三、佇列
一種抽象結構,佇列中的專案從一端進,另一端出,採用先進先出的模式
四、列表
1.屬性特徵:專案的同構性、專案的線性、列表是變長的
2.鏈式結構:一個將資料項和找到下一項位置的資訊儲存到同一容器的現實方法
五.樹(一種分層體系結構)
1.二叉樹:具有唯一起始節點的抽象複合結構,其中每個節點可以有兩個子女節點,根節點和每個節點之間都有且僅有一條路徑
根:樹中的唯一開始節點
葉節點:沒有子女的樹節點
2.二叉檢索樹:具有二叉樹的形狀屬性和語義屬性
(1)搜尋:與線性結構的二分檢索法類似;搜尋效率與樹的形狀有關,而專案插入樹的順序決定了樹的形狀。
(2)構造二叉檢索樹:搜尋路徑中找到專案所在位置
(3)輸出二叉檢索樹中的資料:先輸出左子樹中的所有值,再輸出根的值,再輸出右子樹中的所有值。
3.其他操作:如Length操作
六.圖
1.圖:由一組節點和一組把節點相互連線起來的邊構成的資料結構
有向圖:其中的邊是從一個頂點指向另一個頂點的圖
無向圖:其中邊沒有方向的圖
2.頂點:圖中的節點
邊:表示圖中兩個節點的連線的頂點對
如果兩個頂點有一條邊相連,則稱鄰頂點。兩個頂點通過一條有順序的路徑相連。
3.建立圖:在表格中新增一個頂點---在表格中新增一條邊---在表格中新增一個權值
4.圖演算法:
深度優先搜尋
廣度優先搜尋
單源最短路搜尋
七.子程式(傳遞資訊)
1.引數傳遞:值傳遞,引用傳遞
2.引數列表:是子程式要使用的識別符號或值的列表。識別符號包括形參(列在子程式後括號內的識別符號)和實參(列在子程式括號中的識別符號)
3.值參:由呼叫單元傳入實參的副本的形參
引用引數:由呼叫單元傳入實參的地址的形參
第九章 面向物件設計與高階程式設計語言
面向物件的設計是審視設計過程的一種方式
一.面向物件方法(用叫做物件的獨立實體生成解決方案的問題求解方法)
設計重點:物件以及它們在問題中的互動
1.物件:在問題背景中相關的事物或實體
物件類(類):一組具有相似的屬性和行為的物件的描述
欄位:表示類的屬性
方法:定義了類的一種行為的演算法,處理物件中的資料值的特定演算法
2.設計方法;
頭腦風暴(一種集體問題求解的方法)---過濾(根據頭腦風暴生成的暫時列表,確定問題解決方案中的核心類)---場景(給每個類分配責任:類自身必須知道什麼/類必須能夠做什麼)---責任演算法(為責任編寫演算法)
注:封裝:把資料和動作集中在一起,使資料和動作的邏輯屬性與它們的實現細節分離
二.翻譯過程
1.編譯器:把用高階語言編寫的程式翻譯成機器碼的程式
2.直譯器:輸入用高階語言編寫的程式,指導計算機執行每個語句指定的動作的程式
位元組碼:編譯Java原始碼使用的標準機器語言
三.程式設計語言範型
1.命令式範型---具有順序執行指令的特徵,變數的使用代表了記憶體地址,而使用賦值語句則改變這些變數的值
(1)面向過程的範型:語句被分組為了程式
(2)面向物件的範型:物件和操作物件的程式碼綁在一起,使得每個物件負責自己的操作。
2.宣告式範型---只描述結果但完成結果的過程不被描述
(1)函式式模型:基於函式的數學概念
(2)邏輯程式設計:基於數理邏輯的原則
四.高階程式設計語言的功能性
1.布林表示式:一個識別符號序列,求得的值是true/false
2.資料歸類:
(1)資料型別---一組值以及能夠應用於這種型別的值的基本操作集合的說明
整數:一個整數值的範圍
實數:特定精度的值的範圍,這個範圍由表示實數值的位元組數決定
字元:ASCII字符集包括英文字元,是Unicode字符集的子集
字串:一個字元序列,在某些語言中這些序列通常被看作一個數據值
注:我們使用單引號全出字元,用雙引號圈出字串
(2)宣告---把變數,動作或語言中的其他實體與識別符號關聯起來的語句,使程式設計師可以通過名字引用這些專案
保留字:一種語言中具有特殊意義的字,不能用它作為識別符號
區分大小寫:大寫字母和小寫字母被看作是不同的
3.輸入/輸出結構---所有輸入語句都由三部分組成=要存放資料的變數的宣告+輸入語句+要讀入的變數名以及資料流自身
4.控制結構---確定程式中其他指令的執行順序的指令(重複,選擇,子程式)
(1)巢狀邏輯:選擇和迴圈語句可以在子程式中被巢狀,子程式可以在迴圈或選擇結構中被巢狀
(2)非同步處理:不與計算機中的其他操作同時發生
五.面嚮物件語言的功能性
1.封裝
例項化---建立類的物件
2.繼承:類獲取其他類的屬性的機制
3.多型:語言在執行時確定給定呼叫將執行哪些可能的方法的能力