2021-2022-1學期 20212328 《網路空間安全專業導論》第四周學習總結
第八章:抽象資料型別與子程式
1.區分基於陣列的實現和鏈式實現1.區分基於陣列的實現和鏈式實現
陣列的實現中,每個資料都被明確編碼,方便直接按編碼檢索,但是由於編碼的固定性,難以對陣列進行更改。
鏈式實現:類似於“接頭式”結構,像火車車廂一般,便於增添刪減其中的專案,但是檢索時間長。
鏈式實現:類似於“接頭式”結構,像火車車廂一般,便於增添刪減其中的專案,但是檢索時間長。
鏈式結構(linked structure):一個將資料和找到下一項位置的資訊儲存到同一容器的實現方法。鏈式結構(linked structure):一個將資料和找到下一項位置的資訊儲存到同一容器的實現方法。
2.區分陣列和列表2.區分陣列和列表
陣列:難以改變,大小相對固定,內嵌結構,高效檢索
列表:易於更改,大小不定,抽象結構,為了靈活犧牲一定的效率
3.區分無序列表和有序列表3.區分無序列表和有序列表
無序列表:順序並不重要,專案只是隨意被放入其中。
有序列表:專案之間具有語義關係。
4.區分棧和佇列的行為4.區分棧和佇列的行為
棧:LIFO,後進先出,就像超市貨架上的商品,最後被碼入的一排是最先被拿到的一排。
佇列:FIFO,先進先出,就像排隊過安檢,先去安檢人先過安檢。
5.區分二叉樹和二叉檢索樹5.區分二叉樹和二叉檢索樹
二叉樹(binary tree):具有唯一起始節點的抽象複合結構,其中每個節點可以有兩個子女節點,根節點和每個節點之間都有且只有一條路徑。二叉樹(binary tree):具有唯一起始節點的抽象複合結構,其中每個節點可以有兩個子女節點,根節點和每個節點之間都有且只有一條路徑。
二叉檢索樹具有二叉樹的形狀屬性,此外,二叉檢索樹還具有語義屬性來刻畫樹中節點上的值,即任何節點的值都要大於它左子樹中的所有節點的值,並且要小於它的右子樹中的所有節點的值。
6.建立二叉檢索書的過程6.建立二叉檢索書的過程
首先插入第一個值,再插入後續值,若後續值大於第一個值,將之放入右子樹,反之放入左子樹,下一個數再與第一個值開始比較重複上述操作即可。
7.理解樹與圖的區別7.理解樹與圖的區別
樹是表示存在層次結構關係的一種有效方式,也就是說,一個節點至多隻有一個指向它的節點。如果去掉這種越說,就得到了另一種資料結構——圖。圖有一組節點和連續節點的線段構成,圖中的節點叫做頂點,途中的線段叫做邊。
圖(graph):有一組節點和一組把節點相互連線起來的便構成的資料結構。圖(graph):有一組節點和一組把節點相互連線起來的便構成的資料結構。
8.,區別值參與引用引數8.,區別值參與引用引數
值參(value parameter):由呼叫單元傳入實參的副本的形參。
引用引數(reference parameter):由呼叫單元傳入實參的地址的形參》引用引數(reference parameter):由呼叫單元傳入實參的地址的形參》
區別在於“引用”,即前者是傳入實參的副本,而另一個是傳入實參的地址(引用)。
第九章:面向物件設計與高階程式設計語言第九章:面向物件設計與高階程式設計語言
1.區分功能設計與面向物件設計1.區分功能設計與面向物件設計
功能設計:一種自頂向下的設計,重點在於完成任務,把輸入轉化成輸出,生成任務的體系結構。
面向物件設計:用物件這種獨立實體生成解決方案的問題求解方法,物件由資料和處理資料的操作構成。設計的重點是物件以及它們再問題中的互動。生成物件的體系結構。
2.描述面向物件設計過程2.描述面向物件設計過程
(1)頭腦風暴:解決某個特定問題要用到的候選類的列表。
(2)過濾:回顧頭腦風暴階段確定的類,看哪些類是可以合併的以及還缺少哪些類。過濾階段保留下來的類將再下一個階段仔細研究。
(3)場景:給每個類分配責任。
(4)責任演算法:為責任編寫演算法。
3.面嚮物件語言的三要素3.面嚮物件語言的三要素
封裝(encapsulation):實施資訊隱蔽的語言特性。
繼承(inheritance):類獲取其他類的屬性的機制。
多型(polymorphism):語言再執行時確定給定呼叫將執行哪些可能的方法的能力。 (3)多型(polymorphism):語言再執行時確定給定呼叫將執行哪些可能的方法的能力。
4.翻譯過程及彙編、編譯、解釋和執行的區別4.翻譯過程及彙編、編譯、解釋和執行的區別
高階語言的翻譯過程:預處理階段——編譯階段——彙編階段——連結階段
彙編是將組合語言翻譯成機器碼,編譯是將高階語言編寫的程式翻譯成組合語言或機器碼,解釋則不僅翻譯程式中的指令,還會立即執行它們,不會輸出機器語言程式碼。
5.命名四種不同的程式設計泛型,並給出每一種的語言特徵5.命名四種不同的程式設計泛型,並給出每一種的語言特徵
(1)面向過程的泛型:語句被分組為子程式,一個程式是子程式分層次構成的,每一層執行整個問題求解的一個必要的特定任務。
(2)面向物件的泛型:面向物件視角是與物件互動的一種方式。資料被認為是被動並且被程式所操控的。資料物件是活躍的。物件和操作物件的程式碼繫結在一起,使得每個物件負責控制自己的操作。
(3)函式式模型:基於函式的數學概念。基本原理是函式的求值,而不是變數和賦值語句。
(4)邏輯式模型:基於數理邏輯的準則。這個模型包括了面向這些物件和關係詢問可以通過事實和規則推演的問題。
6.資料型別和強型別6.資料型別和強型別
資料型別(data type):一組值以及能夠應用於這種型別的值的基本操作集合的說明。
強型別(Strong type):強型別指的是程式中表達的任何物件所從屬的型別都必須能在編譯時刻確定。強型別(Strong type):強型別指的是程式中表達的任何物件所從屬的型別都必須能在編譯時刻確定。