2019-2020-1學期20212419《網路空間安全專業導論》第四周學習總結
第八章: 抽象資料型別與子程式
抽象資料型別:屬性(資料和操作)明確的與特定現實分離的容器
觀察資料:
應用層:特定問題中資料的檢視。
邏輯層:資料值和處理他們的操作的抽象檢視。
實現層:存放資料的結構,並用程式設計語言對資料的操作進行編碼。涉及資料結構(一種抽象資料型別中複合資料域的實現)
ADT是儲存資料的容器(存放和操作其他物件的物件)
兩種資料結構:棧和佇列
棧:一種抽象複合結構,只能從一段訪問棧中的元素,可在第一個位置插入元素。這種處理稱為LIFO
佇列:專案從一端入,從另一端出。這種行為稱為FIFO
列表:屬性特徵:專案同構的,專案是線性的,列表是變長的。列表不是陣列,陣列是內嵌型的,而列表是抽象結構,但列表應用於陣列中。
列表也被形象化為鏈式結構(一個數據項和找到下一項位置的資訊儲存到同一容器的實現方法)
無序列表無順序,專案只是隨意的被放入其中。
有序列表中,專案具有語義關係,除第一個專案之外的所有專案都存在某種排序關係。除最後一個專案,所有的專案有著同樣的關係。
樹:一種可以體現更為複雜的關係的結構,表示層次結構。在計算機領域,樹通常是二叉樹,即每一個節點下最多有兩個子節點的數。
二叉樹是一種抽象結構,每個節點後有兩個節點,叫做子女,樹的頭部是一個起始節點,叫做根,它不是任何節點的子女。
葉節點:沒有子女的樹節點
二叉檢索樹:具有二叉樹的形狀,但其具有語義屬性來刻畫樹中節點上的值,即任何節點上的值都要大於它的左子樹中所有節點的值。
在二叉檢索樹中搜索:與線性結構中的二分檢索法相似,根據其任何節點上的值都要大於它的左子樹中所有節點的值的特性來進行檢索。
二叉檢索樹的效率與樹的形狀有直接關係,而樹的形狀由專案插入樹的順序決定的。
構造二叉檢索樹:根據字串來構建
輸出二叉檢索樹中的資料:要輸出根的值,必須先輸出它左子樹中的所有值(比根小),之後再輸出它右子樹的值(比根大)。
圖:由一組節點和一組把節點相互連線起來的邊構成的資料結構。圖中的節點叫做頂點,兩個節點的連線的頂點對叫做邊。
邊沒有方向的圖叫做無向圖,邊是從一個頂點指向另一個頂點的圖叫做有向圖。
建立圖:圖中的演算法可以解決實際的問題,建立表格的操作:在表格中新增一個頂點,在表格中新增一個邊,在表格中新增一個權值。
圖演算法:
1,深度優先搜尋:選擇一個走得更遠的路
2,廣度優先搜尋:優先檢查所有與起點相鄰的頂點
3,單源最短路搜尋:被檢索的元素在佇列中擁有最高優先度。
子程式:高階語言或語言附帶庫的一部分
引數傳遞:子程式要使用的識別符號或值的列表,放置在子程式名後的括號中。
形參:列在子程式後的括號中的識別符號。
實參:子程式呼叫中列在括號中的識別符號。
值參:由呼叫單元傳入實參的形參
引用引數:由調入單元傳入實參的地址。
第九章:面向物件設計與高階程式設計語言
面對物件:
1,物件:在問題背景中相關的事物或實體
2,物件類:一組具有相似屬性和行為的物件的描述
3,欄位:表示類的屬性
4,方法:定義了類的一種行為的特定演算法
設計方法:
1,頭腦風暴:一種集體行為,為的是生成解決某個特定的問題要用到的候選類列表
2,過濾:將共同屬性和行為的項組合到一起。
3,場景:列出每個類的責任以及每個責任需要協作的類
4,責任演算法:相對較短,為責任編寫演算法
5,總結:自頂向下的設計方法的重點在於將輸入轉化為輸出
翻譯過程:
1,編譯器:翻譯程式設計語言編寫的程式的程式叫做編譯器,把高階語言編寫的程式翻譯成機器碼的程式
2,直譯器:輸入高階語言編寫的程式,指導計算機執行每個語句指定分動作的程式。
程式設計語言範型:
1,命令式範型:描述瞭解決問題的必要處理,具有順序執行的指令
面向過程的範型:命令式模型,語句被分解為子程式,一個子程式分層次構成的。4
面向物件的範型:與物件互動的一種方式,每個物件執行他自己的動作。
2,宣告式範型:描述結果的的模型,但是完成結果的過程則不被描述。
函式式模型:基於函式的數學概念。計算通過對函式求值來實現,而問題求解通過函式呼叫來實現。‘
邏輯程式設計:基於數理邏輯的原則。
高階程式設計語言的功能性:
布林表示式:一個識別符號序列,識別符號之間由相容的運算子分隔,求得的值是ture和false。
資料歸類:
強化型別:每個變數都有一個型別,只有這種型別的值才能儲存到該變數中。
資料型別:一組值以及能夠應用於這種型別得知地基本操作集合說明。
整數:表示一個整數值的範圍。
實數:特定精度的數的範圍。
字元:對字元進行算術運算是毫無意義的,但能對字元進行關係運算。
布林型:布林資料型別只有兩個值,ture和false。
輸入/輸入結構:
控制結構:確定程式中其他指令的執行順序的指令。
巢狀邏輯:選擇結構可以在迴圈結構中被巢狀,,迴圈結構可以在選擇結構中被巢狀。
非同步處理:被程式指令序列以外發生的事件所控制。非同步(不與計算機中的其他操作同時發生,不操作程式不同步)
面嚮物件語言的功能性:
封裝:實施資訊隱蔽的語言特性
類:物件的模式
繼承:類獲取其他類的屬性的機制。
多型:語言在執行時確定給定呼叫將執行哪些可能的方法的能力。
物件設計與面向物件設計的區別:在面對物件的設計中,列表資料結構和子程式需要在類中繫結在一起。
,