為了方便計算機等級試,特意整理出來(lái)的。
第一章 數據結構與算法 1 算法是解題方案的準確而完整的描述,它不等于程序,也不等于計算方法。 基本特征:可行性、確定性、有窮性、擁有足夠的情報。
2 算法復雜度主要包括時(shí)間復雜度和空間復雜度。 時(shí)間復雜度:用來(lái)衡量算法執行過(guò)程中所需要的基本運算次數。
空間復雜度:用來(lái)衡量算法執行過(guò)程中所需要的存儲空間。 3 數據結構研究的主要內容: (1)數據的邏輯結構 (2)數據的存儲結構 (3)對各種數據結構進(jìn)行的運算 4 研究數據結構的主要目的:提高數據處理的效率。
5 數據結構的定義:指相互關(guān)聯(lián)的數據元素的集合。 6 數據的邏輯結構反映數據元素之間的邏輯關(guān)系,數據的存儲結構是數據的邏輯結構在計算機存儲空間的存放形式。
同一種邏輯結構可以采用不同存儲結構,但影響數據處理效率。 7 數據結構分為兩大類(lèi)型:線(xiàn)性結構與非線(xiàn)性結構 常見(jiàn)線(xiàn)性結構:線(xiàn)性表、棧、隊列、線(xiàn)性鏈表 常用非線(xiàn)性結構:樹(shù)、二叉樹(shù)、圖 8 線(xiàn)性表示由n(n>=0)個(gè)相同類(lèi)型的數據元素構成的有限序列。
結構特征: (1)數據元素在表中的位置由序號決定,數據元素之間的相對位置是線(xiàn)性的 (2)對于一個(gè)非空線(xiàn)性表,有且只有一個(gè)根節點(diǎn)a1,它無(wú)前件,有且只有一個(gè)終端結點(diǎn)an,它無(wú)后件,除根結點(diǎn)與終端結點(diǎn)外,其他所有結點(diǎn)有且只有一個(gè)前件,也有且只有一個(gè)后件。 基本存儲結構: (1)順序存儲 (2)鏈式存儲 9 順序表的插入運算時(shí)需要移動(dòng)元素,在等概率情況下,平均需要移動(dòng) n/2 個(gè)元素。
10 進(jìn)行順序表的刪除運算時(shí)也需要移動(dòng)元素,在等概率情況下,平均移動(dòng)(n-1)/2 個(gè)元素。 11 棧只能在棧頂插入或刪除元素,是一種先進(jìn)后出FILO(或稱(chēng)為后入先出LIFO)的線(xiàn)性表。
12 隊列是只能從隊尾插入元素,在隊頭刪除元素,是一種先進(jìn)先出FIFO(或后入后出LILO)的線(xiàn)性表。 13 線(xiàn)性鏈表不能隨機存取。
14 在線(xiàn)性鏈表中插入元素時(shí),不需要移動(dòng)數據元素,只需要修改相關(guān)結點(diǎn)指針即可,也不會(huì )出現“上溢”現象。 15 在線(xiàn)性鏈表中刪除元素時(shí),也不需要移動(dòng)數據元素,只需要修改相關(guān)結點(diǎn)指針即可。
16 循環(huán)鏈表實(shí)單鏈表基礎上增加了一個(gè)表頭結點(diǎn),其插入和刪除運算與單鏈表相同,可以從任意結點(diǎn)出發(fā)來(lái)訪(fǎng)問(wèn)表中其他所有結點(diǎn),并實(shí)現空表與非空表的運算。 17 一般二叉樹(shù)通常采用鏈式存儲結構,對于滿(mǎn)二叉樹(shù)與完全二叉樹(shù)來(lái)說(shuō),可以按層序進(jìn)行順序存儲。
18 二分查找知識用于順序存儲的線(xiàn)性表,對于無(wú)序線(xiàn)性表和線(xiàn)性表的鏈式存儲結構只能用順序查找。 19 冒泡排序是每一趟都會(huì )把較小的元素先前移動(dòng),最壞比較次數是 n(n-1)/2 。
20 簡(jiǎn)單插入排序法是將無(wú)序序列中的各元素依次插入到已經(jīng)有序的線(xiàn)性表中,最壞比較次數為 n(n-1)/2。 21 希爾排序法的基本思想:將無(wú)序序列劃分成若干個(gè)子序列(又相隔某個(gè)增量h的元素組成)分別進(jìn)行直接插入排序,待整個(gè)序列中的元素基本有序(增量足夠小)時(shí),在對全體元素進(jìn)行一次直接插入排序。
因為直接插入排序在元素基本有序的情況下(接近最好情況),效率是很高的。 22 選擇排序每一趟都是找出無(wú)序序列中的最小一個(gè)元素,最壞比較次數為 n(n-1)/2。
23 排序技術(shù): (1)交換排序法:冒泡排序、快速排序 (2)插入排序法:簡(jiǎn)單插入排序法、希爾排序 (3)選擇排序法:簡(jiǎn)單選擇排序法、堆排序法。
2019國家計算機二級考試。取消“Visual FoxPro數據庫程序設計”科目(代碼:27),2017年12月是其最后一次組考。新增“Python語(yǔ)言程序設計”科目(代碼:66),考試時(shí)長(cháng):120分鐘,軟件要求:Python 3.5.2版本及以上 IDLE,2018年9月首次開(kāi)考。
自2019年3月考試起,二級語(yǔ)言類(lèi)及數據庫類(lèi)科目(即除MS Office高級應用外的其他二級科目)調整獲證條件為:總分達到60分且選擇題得分達到50%及以上(即選擇題得分要達到20分及以上)的考生方可取得合格證書(shū)。
擴展資料:
全國計算機等級考試調整方案
從2018年3月開(kāi)始,全國計算機等級考試將實(shí)施2018版考試大綱,并按新體系開(kāi)考各個(gè)考試級別。具體調整內容如下:
一、考試級別及科目
1、一級。新增“網(wǎng)絡(luò )安全素質(zhì)教育”科目(代碼:17),考試時(shí)長(cháng) 90分鐘,將于2019年9月首次開(kāi)考。
2、二級。取消“Visual FoxPro數據庫程序設計”科目(代碼:27),2017年12月是其最后一次組考。新增“Python語(yǔ)言程序設計”科目(代碼:66),考試時(shí)長(cháng):120分鐘,軟件要求:Python 3.5.2版本及以上 IDLE,2018年9月首次開(kāi)考。
自2019年3月考試起,二級語(yǔ)言類(lèi)及數據庫類(lèi)科目(即除MS Office高級應用外的其他二級科目)調整獲證條件為:總分達到60分且選擇題得分達到50%及以上(即選擇題得分要達到20分及以上)的考生方可取得合格證書(shū)。
3、三級。2018年3月起暫停“軟件測試技術(shù)”科目(代碼:37)。自2018年3月考試起改變三級獲證條件要求,考生只需通過(guò)三級考試即可獲得該三級科目的合格證書(shū),不再要求二級證書(shū)。
4、四級。暫停“軟件測試工程師”科目(代碼:43)。專(zhuān)業(yè)基礎課程暫停軟件工程(課程代碼:405)。四級數據庫工程師科目考試課程由“404、405”調整為“401、404”。四級獲證條件不變:通過(guò)四級科目的考試,并已經(jīng)(或同時(shí))獲得三級相關(guān)證書(shū)。
二、考試軟件
二級C、C++兩個(gè)科目應用軟件由Visual C++6.0改為Visual C++ 2010學(xué)習版(即Visual C++ 2010 Express)。
三、教材及宣傳
新科目教材預計2018年3月出版,其他科目教材2017年11月上市。新科目、新教材的宣傳資料,將在NCRE網(wǎng)站()公布。
計算機二級公共基礎知識是計算機中綜合性知識,占30分。
包含的科目有數據結構,軟件工程,算法設計與分析,數據庫設計等。而這些科目都屬于計算機專(zhuān)業(yè)必修課,也是一個(gè)程序員的必備理論基礎。
我們知道二級的目標定位就是程序員的水平,所以這些科目都是必考內容。 那么如何備考呢?實(shí)際上很簡(jiǎn)單,只要買(mǎi)一本教育部考試中心出版的計算機二級考試公共基礎知識大綱級指導書(shū)(一定是教育部出版發(fā)行的那種),回來(lái)抽個(gè)時(shí)間仔細研讀一番就可以了,而且無(wú)須做大量練習題,因為二級要求不高,停留在概念的階段。
復習時(shí),不要將其看的太重,因為大家的水平都差不多,除非計算機專(zhuān)業(yè)的。 ========================================== 全國計算機等級考試二級公共基礎知識考試大綱 基本要求 1。
掌握算法的基本概念。 2。
掌握基本數據結構及其操作。 3。
掌握基本排序和查找算法。 4。
掌握逐步求精的結構化程序設計方法。 5。
掌握軟件工程的基本方法,具有初步應用相關(guān)技術(shù)進(jìn)行軟件開(kāi)發(fā)的能力。 6。
掌握數據的基本知識,了解關(guān)系數據庫的設計。 考試內容 一、基本數據結構與算法 1。
算法的基本概念;算法復雜度的概念和意義(時(shí)間復雜度與空間復雜度)。 2。
數據結構的定義;數據的邏輯結構與存儲結構;數據結構的圖形表示;線(xiàn)性結構與非線(xiàn)性結構的概念。 3。
線(xiàn)性表的定義;線(xiàn)性表的順序存儲結構及其插入與刪除運算。 4。
棧和隊列的定義;棧和隊列的順序存儲結構及其基本運算。 5。
線(xiàn)性單鏈表、雙向鏈表與循環(huán)鏈表的結構及其基本運算。 6。
樹(shù)的基本概念;二叉樹(shù)的定義及其存儲結構;二叉樹(shù)的前序、中序和后序遍歷。 7。
順序查找與二分法查找算法;基本排序算法(交換類(lèi)排序,選擇類(lèi)排序,插入類(lèi)排序)。 二、程序設計基礎 1。
程序設計方法與風(fēng)格。 2。
結構化程序設計。 3。
面向對象的程序設計方法,對象,方法,屬性及繼承與多態(tài)性。 三、軟件工程基礎 1。
軟件工程基本概念,軟件生命周戎概念,軟件工具與軟件開(kāi)發(fā)環(huán)境。 2。
結構化分析方法,數據流圖,數據字典,軟件需求規格說(shuō)明書(shū)。 3。
結構化設計方法,總體設計與詳細設計。 4。
軟件測試的方法,白盒測試與黑盒測試,測試用例設計,軟件測試的實(shí)施,單元測試、集成測試和系統測試。 5。
程序的調試,靜態(tài)調試與動(dòng)態(tài)調試。 四、數據庫設計基礎 1。
數據庫的基本概念:數據庫,數據庫管理系統,數據庫系統。 2。
數據模型,實(shí)體聯(lián)系模型及E-R圖,從E-R圖導出關(guān)系數據模型。 3。
關(guān)系代數運算,包括集合運算及選擇、投影、連接運算,數據庫規范化理論。 4。
數據庫設計方法和步驟:需求分析、概念設計、邏輯設計和物理設計的相關(guān)策略。 。
公共基礎知識
基本要求
1.掌握算法的基本概念。
2.掌握基本數據結構及其操作。
3.掌握基本排序和查找算法。
4.掌握逐步求精的結構化程序設計方法。
5.掌握軟件工程的基本方法,具有初步應用相關(guān)技術(shù)進(jìn)行軟件開(kāi)發(fā)的能力。
6.掌握數據庫的基本知識,了解關(guān)系數據庫的設計。
考試內容
一、基本數據結構與算法
1.算法的基本概念;算法復雜度的概念和意義(時(shí)間復雜度與空間復雜度)。
2.數據結構的定義;數據的邏輯結構與存儲結構;數據結構的圖形表示;線(xiàn)性結構與非線(xiàn)性結構的概念。
3.線(xiàn)性表的定義;線(xiàn)性表的順序存儲結構及其插入與刪除運算。
4.棧和隊列的定義;棧和隊列的順序存儲結構及其基本運算。
5.線(xiàn)性單鏈表、雙向鏈表與循環(huán)鏈表的結構及其基本運算。
6.樹(shù)的基本概念;二叉樹(shù)的定義及其存儲結構;二叉樹(shù)的前序、中序和后序遍歷。
7.順序查找與二分法查找算法;基本排序算法(交換類(lèi)排序,選擇類(lèi)排序,插入類(lèi)排序)。
二、程序設計基礎
1.程序設計方法與風(fēng)格
2.結構化程序設計。
3.面向對象的程序設計方法,對象,方法,屬性及繼承與多態(tài)性。
三、軟件工程基礎
1.軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開(kāi)發(fā)環(huán)境。
2.結構化分析方法,數據流圖,數據字典,軟件需求規格說(shuō)明書(shū)。
3.結構化設計方法,總體設計與詳細設計。
4.軟件測試的方法,白盒測試與黑盒測試,測試用例設計,軟件測試的實(shí)施,單元測試、集成測試和系統測試。
5.程序的調試,靜態(tài)調試與動(dòng)態(tài)調試。
四、數據庫設計基礎
1.數據庫的基本概念:數據庫,數據庫管理系統,數據庫系統。
2.數據模型,實(shí)體聯(lián)系模型及E―R圖,從E―R圖導出關(guān)系數據模型。
3.關(guān)系代數運算,包括集合運算及選擇、投影、連接運算,數據庫規范化理 論。
4.數據庫設計方法和步驟:需求分析、概念設計、邏輯設計和物理設計的相關(guān)策略。
考試方式
1.公共基礎知識的考試方式為筆試,與C語(yǔ)言程序設計(C++語(yǔ)言程序設計、Java語(yǔ)言程序設計、Visual Basic語(yǔ)言程序設計、Visual FoxPro數據庫程序設計或Access數據庫程序設計)的筆試部分合為一張試卷,公共基礎知識部分占全卷的30分。
2.公共基礎知識有l0道選擇題和5道填
計算機二級公共基礎知識總結數據結構與算法1.1 算法算法:是指解題方案的準確而完整的描述。
算法不等于程序,也不等計算機方法,程序的編制不可能優(yōu)于算法的設計。算法的基本特征:是一組嚴謹地定義運算順序的規則,每一個(gè)規則都是有效的,是明確的,此順序將在有限的次數下終止。
特征包括:(1)可行性;(2)確定性,算法中每一步驟都必須有明確定義,不充許有模棱兩可的解釋?zhuān)辉试S有多義性;(3)有窮性,算法必須能在有限的時(shí)間內做完,即能在執行有限個(gè)步驟后終止,包括合理的執行時(shí)間的含義;(4)擁有足夠的情報。算法的基本要素:一是對數據對象的運算和操作;二是算法的控制結構。
指令系統:一個(gè)計算機系統能執行的所有指令的集合。基本運算和操作包括:算術(shù)運算、邏輯運算、關(guān)系運算、數據傳輸。
算法的控制結構:順序結構、選擇結構、循環(huán)結構。算法基本設計方法:列舉法、歸納法、遞推、遞歸、減斗遞推技術(shù)、回溯法。
算法復雜度:算法時(shí)間復雜度和算法空間復雜度。算法時(shí)間復雜度是指執行算法所需要的計算工作量。
算法空間復雜度是指執行這個(gè)算法所需要的內存空間。1.2 數據結構的基本基本概念數據結構研究的三個(gè)方面:(1)數據集合中各數據元素之間所固有的邏輯關(guān)系,即數據的邏輯結構;(2)在對數據進(jìn)行處理時(shí),各數據元素在計算機中的存儲關(guān)系,即數據的存儲結構;(3)對各種數據結構進(jìn)行的運算。
數據結構是指相互有關(guān)聯(lián)的數據元素的集合。數據的邏輯結構包含:(1)表示數據元素的信息;(2)表示各數據元素之間的前后件關(guān)系。
數據的存儲結構有順序、鏈接、索引等。線(xiàn)性結構條件:(1)有且只有一個(gè)根結點(diǎn);(2)每一個(gè)結點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。
非線(xiàn)性結構:不滿(mǎn)足線(xiàn)性結構條件的數據結構。1.3 線(xiàn)性表及其順序存儲結構線(xiàn)性表由一組數據元素構成,數據元素的位置只取決于自己的序號,元素之間的相對位置是線(xiàn)性的。
在復雜線(xiàn)性表中,由若干項數據元素組成的數據元素稱(chēng)為記錄,而由多個(gè)記錄構成的線(xiàn)性表又稱(chēng)為文件。非空線(xiàn)性表的結構特征:(1)且只有一個(gè)根結點(diǎn)a1,它無(wú)前件;(2)有且只有一個(gè)終端結點(diǎn)an,它無(wú)后件;(3)除根結點(diǎn)與終端結點(diǎn)外,其他所有結點(diǎn)有且只有一個(gè)前件,也有且只有一個(gè)后件。
結點(diǎn)個(gè)數n稱(chēng)為線(xiàn)性表的長(cháng)度,當n=0時(shí),稱(chēng)為空表。線(xiàn)性表的順序存儲結構具有以下兩個(gè)基本特點(diǎn):(1)線(xiàn)性表中所有元素的所占的存儲空間是連續的;(2)線(xiàn)性表中各數據元素在存儲空間中是按邏輯順序依次存放的。
ai的存儲地址為:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)為第一個(gè)元素的地址,k代表每個(gè)元素占的字節數。順序表的運算:插入、刪除。
(詳見(jiàn)14--16頁(yè))1.4 棧和隊列棧是限定在一端進(jìn)行插入與刪除的線(xiàn)性表,允許插入與刪除的一端稱(chēng)為棧頂,不允許插入與刪除的另一端稱(chēng)為棧底。棧按照“先進(jìn)后出”(FILO)或“后進(jìn)先出”(LIFO)組織數據,棧具有記憶作用。
用top表示棧頂位置,用bottom表示棧底。棧的基本運算:(1)插入元素稱(chēng)為入棧運算;(2)刪除元素稱(chēng)為退棧運算;(3)讀棧頂元素是將棧頂元素賦給一個(gè)指定的變量,此時(shí)指針無(wú)變化。
隊列是指允許在一端(隊尾)進(jìn)入插入,而在另一端(隊頭)進(jìn)行刪除的線(xiàn)性表。Rear指針指向隊尾,front指針指向隊頭。
隊列是“先進(jìn)行出”(FIFO)或“后進(jìn)后出”(LILO)的線(xiàn)性表。隊列運算包括(1)入隊運算:從隊尾插入一個(gè)元素;(2)退隊運算:從隊頭刪除一個(gè)元素。
循環(huán)隊列:s=0表示隊列空,s=1且front=rear表示隊列滿(mǎn)1.5 線(xiàn)性鏈表數據結構中的每一個(gè)結點(diǎn)對應于一個(gè)存儲單元,這種存儲單元稱(chēng)為存儲結點(diǎn),簡(jiǎn)稱(chēng)結點(diǎn)。結點(diǎn)由兩部分組成:(1)用于存儲數據元素值,稱(chēng)為數據域;(2)用于存放指針,稱(chēng)為指針域,用于指向前一個(gè)或后一個(gè)結點(diǎn)。
在鏈式存儲結構中,存儲數據結構的存儲空間可以不連續,各數據結點(diǎn)的存儲順序與數據元素之間的邏輯關(guān)系可以不一致,而數據元素之間的邏輯關(guān)系是由指針域來(lái)確定的。鏈式存儲方式即可用于表示線(xiàn)性結構,也可用于表示非線(xiàn)性結構。
線(xiàn)性鏈表,HEAD稱(chēng)為頭指針,HEAD=NULL(或0)稱(chēng)為空表,如果是兩指針:左指針(Llink)指向前件結點(diǎn),右指針(Rlink)指向后件結點(diǎn)。線(xiàn)性鏈表的基本運算:查找、插入、刪除。
1.6 樹(shù)與二叉樹(shù)樹(shù)是一種簡(jiǎn)單的非線(xiàn)性結構,所有元素之間具有明顯的層次特性。在樹(shù)結構中,每一個(gè)結點(diǎn)只有一個(gè)前件,稱(chēng)為父結點(diǎn),沒(méi)有前件的結點(diǎn)只有一個(gè),稱(chēng)為樹(shù)的根結點(diǎn),簡(jiǎn)稱(chēng)樹(shù)的根。
每一個(gè)結點(diǎn)可以有多個(gè)后件,稱(chēng)為該結點(diǎn)的子結點(diǎn)。沒(méi)有后件的結點(diǎn)稱(chēng)為葉子結點(diǎn)。
在樹(shù)結構中,一個(gè)結點(diǎn)所擁有的后件的個(gè)數稱(chēng)為該結點(diǎn)的度,所有結點(diǎn)中最大的度稱(chēng)為樹(shù)的度。樹(shù)的最大層次稱(chēng)為樹(shù)的深度。
二叉樹(shù)的特點(diǎn):(1)非空二叉樹(shù)只有一個(gè)根結點(diǎn);(2)每一個(gè)結點(diǎn)最多有兩棵子樹(shù),且分別稱(chēng)為該結點(diǎn)的左子樹(shù)與右子樹(shù)。二叉樹(shù)的基本性質(zhì):(1)在二叉樹(shù)的第k層上,最多有2k-1(k≥1)個(gè)結點(diǎn);(2)深度為m的二叉樹(shù)最多有2m-1個(gè)結點(diǎn);(3)度為0的結點(diǎn)(即葉子結點(diǎn))總是比度為2的結點(diǎn)多一個(gè);(4)具有n個(gè)結點(diǎn)的二叉樹(shù),。
1、算法問(wèn)題處理方案的正確而完整的描述稱(chēng)為【算法】。
算法分析的目的是,分析算法的效率以求改進(jìn)。算法的基本特征是【可行性】、【確定性】、【有窮性】和擁有足夠情報。
算法的有窮性是指:算法程序的運行時(shí)間是有限的。算法的復雜度是衡量算法好壞的度量,分為【時(shí)間復雜度】和【空間復雜度】。
時(shí)間復雜度是指執行算法所需要的【計算工作量】;算法的空間復雜度是指算法執行過(guò)程中所需的【存儲空間】。算法時(shí)間復雜度或空間復雜度中的一項的值,沒(méi)有辦法推出另一項的值。
2、數據結構索引屬于存儲結構(物理結構)。循環(huán)隊列屬于【存儲結構】。
數據的存儲結構又稱(chēng)為物理結構,是數據的邏輯結構在計算機存儲空間中的存放形式。一個(gè)邏輯結構可以有多種存儲結構,且各種存儲結構影響數據處理的效率。
程序執行的效率與數據的存儲結構密切相關(guān)。數據結構分為線(xiàn)性結構和非線(xiàn)性結構,帶鏈的隊列屬于【線(xiàn)性結構】。
線(xiàn)性表的存儲結構主要分為順序存儲結構和鏈式存儲結構。順序存儲結構的存儲一定是連續的,鏈式存儲的存儲空間不一定是連續的。
有序線(xiàn)性表既可以采用順序存儲結構,也可以采用鏈式存儲結構。隊列是一種特殊的線(xiàn)性表,循環(huán)隊列按照【先進(jìn)先出】原則組織數據。
循環(huán)隊列是隊列的【順序】存儲結構。數據的獨立性分為【物理獨立】性和【邏輯獨立性】。
當數據的存儲結構改變時(shí),其邏輯結構可以不變,因此,基于邏輯結構的應用程序可以不用修改,稱(chēng)為【物理獨立性】。3、棧和隊列棧是一種特殊的線(xiàn)性表,是只能在一端進(jìn)行插入和刪除的線(xiàn)性表,特點(diǎn)是先進(jìn)后出棧是【先進(jìn)后出】的線(xiàn)性表;棧具有記憶作用;對棧的插入與刪除操作中,不需要改變【棧底指針】。
假定讓元素1、2、3、A、B依次入棧,則出棧的順序是:B、A、3、2、1。棧與隊列都是線(xiàn)性結構,樹(shù)是非線(xiàn)性結構。
支持子程序調用的數據結構是【棧】。棧與隊列的共同點(diǎn)是,都只允許在【端點(diǎn)處】插入和刪除元素。
棧只能順序存儲的描述是錯誤的。棧可以有【順序和鏈式】?jì)煞N存儲方式。
隊列是允許在一段插入,在另一端進(jìn)行刪除的線(xiàn)性表,其特點(diǎn)是【先進(jìn)先出】。循環(huán)隊列中元素的個(gè)數是由隊頭指針和隊尾指針共同決定。
循環(huán)隊列的頭指針為front,尾指針為rear,容量為maxSize,則循環(huán)隊列中元素的個(gè)數是【 (rear-front+maxSize) mod maxSize】。4、線(xiàn)性鏈表線(xiàn)性鏈表是線(xiàn)性表的鏈式存儲結構。
用鏈表表示線(xiàn)性表的優(yōu)點(diǎn)是【便于插入和刪除操作】。線(xiàn)性鏈表的存儲空間不一定連續,且個(gè)元素的存儲順序是任意的。
5、樹(shù)與二叉樹(shù)在樹(shù)結構中,一個(gè)結點(diǎn)所擁有的后件(繼)的個(gè)數稱(chēng)為該結點(diǎn)的度,所有結點(diǎn)中最大的度稱(chēng)為樹(shù)的度。二叉樹(shù)各結點(diǎn)的度只可能取值0、1、2,不可能是其它值。
換言之,知道了度為1結點(diǎn)數量的前提下,葉子結點(diǎn)或度為2的結點(diǎn)中知道其一,就可以求出總的結點(diǎn)數。上述的計算公式,關(guān)鍵要能夠應用,例如,深度為7的滿(mǎn)二叉樹(shù),度為2的結點(diǎn)數量是多少?既然是滿(mǎn)二叉樹(shù),葉子結點(diǎn)的數量就是第7層的結點(diǎn)數量,也就是26,可以算出葉子結點(diǎn)為64,因此度為2的結點(diǎn)數是63(葉子結點(diǎn)數減去1)。
二叉樹(shù)的前序遍歷、中序遍歷、后續遍歷:前中后三個(gè)詞是相對于根來(lái)講的,前序是【根-->左-->右】,中序是【左-->根-->右】,后續是【左-->右-->根】。具體操作為:先序遍歷(D L R): 訪(fǎng)問(wèn)根結點(diǎn),按先序遍歷左子樹(shù),按先序遍歷右子樹(shù)。
中序遍歷(L D R): 按中序遍歷左子樹(shù),訪(fǎng)問(wèn)根結點(diǎn),按中序遍歷右子樹(shù)。后序遍歷(L R D): 按后序遍歷左子樹(shù),按后序遍歷右子樹(shù),訪(fǎng)問(wèn)根結點(diǎn)。
下面以中序遍歷為例,來(lái)講解實(shí)際的解題方法:對一棵樹(shù),將根結點(diǎn)下的左子樹(shù)用一個(gè)橢圓圈起來(lái),右子樹(shù)也用一個(gè)橢圓圈起來(lái)。之后,在左子樹(shù)上標記上1,在根結點(diǎn)標記上2,在右子樹(shù)上標記上3。
對在左邊橢圓內的左子樹(shù),現在把它單獨拿出來(lái)分析。把它的左子樹(shù)圈起來(lái)標上1.1,根結點(diǎn)標記上1.2,右子樹(shù)標上1.3。
按照上述方法依次往下,直到樹(shù)不能拆分,然后按照“左-->根--->右”的順序寫(xiě)出結點(diǎn)的訪(fǎng)問(wèn)先后即可。6、查找技術(shù)對于長(cháng)度為n的線(xiàn)性表,順序查找最壞情況下需要比較n次。
(對數據是否有序沒(méi)有要求)。◆ 順序查找最好情況下查詢(xún)次數是1,最壞情況下是n,平均為(1+n)/2。
對于長(cháng)度為n的有序線(xiàn)性表,二分法最壞情況下只需要比較log2n次。(數據必須有序)能用二分法進(jìn)行查找的是【順序存儲的有序線(xiàn)性表】。
7、排序技術(shù)對于長(cháng)度為n的線(xiàn)性表,【冒泡排序、快速排序、簡(jiǎn)單插入排序、簡(jiǎn)單選擇排序】這四種排序方式在最壞情況下的比較次數相同,都是【n(n-1)/2】。堆排序的效率最高,是【nlog2n】。
★★ 希爾排序最壞情況下需要次比較【n1.5】。希爾排序屬于【插入類(lèi)排序法】。
已知數據表A中每個(gè)元素距最終位置不遠,為節省時(shí)間,應該采用的算法是【直接插入排序】。選擇排序、插入排序、快速排序、歸并排序中對內存要求最大的是【歸并排序】。
第二部分 軟件工程基礎 1、軟件工程基本概念軟件是包括【程序】、【數據】及【相關(guān)文檔】的完整集合,軟件是一種邏輯產(chǎn)品。軟件工程三要素包括【方法、工具。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:3.170秒