第一章數據結構與算法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ù),其深度至少為[log2n]+1,其中[。
公共基礎知識
基本要求
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道填
這個(gè)隨便搜一下就知道啊:第一節 計算機概述 一、計算機發(fā)展概況 第一代電子管計算機(1946-1957) 第二代晶體管計算機(1957-1964) 第三代中小集成電路計算機(1964-1972) 第四代大規模、超大集成電路計算機(1972-現在) 二、計算機的應用 1.科學(xué)計算 2.數據處理 3.實(shí)時(shí)控制 4.計算機輔助工作 CAD CAM CAI CAE 5.人工智能 三、計算機信息處理的特點(diǎn) (1)能高速度、高質(zhì)量地完成各種數據加工任務(wù)。
(2)具有龐大的數據存儲容量和極快的數據存取速度。 (3)能提供方便的適用方式與豐富多樣的信息輸出形式。
(4)方便而迅速的計算機通信使信息共享很容易實(shí)現。 (5)高效率的計算機輔助開(kāi)發(fā)手段。
模擬練習 【例1·單選題】第四代計算機的主要特征是( )。 A.電子管 B.晶體管 C.中小規模集成電路 D.大規模和超大規模集成電路『正確答案』D【例2·單選題】計算機輔助設計的英文縮寫(xiě)是( )。
A.CAD B.CAI C.CAM D.CAT『正確答案』A第二節 數據在計算機中的表示 一、數據與信息 國際標準化組織(ISO)對數據所下的定義是:“數據是對事實(shí)、概念或指令的一種特殊表達形式,這種特殊的表達形式可以用人工的方法或者用自動(dòng)化的裝置進(jìn)行通信、翻譯轉換或者進(jìn)行加工處理。” 信息是對人們有用的數據,這些數據可能影響到人們行為決策。
二、二進(jìn)制 (一) 二進(jìn)制的相關(guān)概念 1.二進(jìn)制,數字電子計算機中采用二進(jìn)制計數法,在二進(jìn)制計數法中只有兩個(gè)數碼:即0和1,其基數為二,即逢二向高位進(jìn)一。 2.二進(jìn)制數與十進(jìn)制數的轉換 3.八進(jìn)制與十六進(jìn)制 有關(guān)二進(jìn)制、十進(jìn)制、八進(jìn)制、十六進(jìn)制數之間的相互轉換,可以利用“附件”中的計算器來(lái)進(jìn)行。
(二) 二進(jìn)制單位(補充內容) 位bit:用于表示一個(gè)二進(jìn)制位、存儲信息的最小單位。 字節Byte:存儲信息的基本單位。
1字節=8位 1Byte=8bit 換算單位: 1KB=1024B=210B 1MB=1024KB=220B 1GB=1024MB=230B 字長(cháng):計算機一次能處理的二進(jìn)制位數。 常用:8位、16位、32位、64位 三、數值數據在計算機中的表示 數值數據在計算機中采用二進(jìn)制形式表示,其表示方式有定點(diǎn)表示法和浮點(diǎn)表示法兩種。
四、西文字符在計算機中的表示 西文包括:英文字母、數字符號、標點(diǎn)符號、運算符號、控制符號 ASCII碼-美國標準信息交換碼(二進(jìn)制) 基本ASCII用7位二進(jìn)制數表示,占用一個(gè)字節,最高位為0。 例:英文字母'B'的7位ASCII碼為100 0010。
存儲時(shí)為0100 0010。 比較大小:數字<大寫(xiě)字母<小寫(xiě)字母 五、中文在計算機中的表示 1.漢字的輸入碼 漢字輸入方法:鍵盤(pán)輸入、語(yǔ)音輸入、掃描輸入、手寫(xiě)輸入方法等。
鍵盤(pán)輸入法: 數字編碼(區位碼) 拼音編碼(全拼、雙拼) 字形編碼(五筆字型) 型音編碼(自然碼) 2.漢字的國際交換碼與機內碼 國標碼: 計算機與其他系統或設備之間交換漢字信息的標準編碼,又稱(chēng)國際碼。1981年,我國頒布了國家標準《信息交換用字編碼字符集·基本集》,漢字國標碼字符集中共收錄了漢字和圖形符號7445個(gè),其中一級漢字3755個(gè),二級漢字3008個(gè)和圖形符號682個(gè)。
一級漢字為使用頻度高的常用漢字,按漢語(yǔ)拼音安母順序排列;不常用的漢字為二級漢字按部首排列。 在漢字交換碼中,每個(gè)漢字用兩個(gè)字節表示。
漢字機內碼(內碼): 是計算機系統中用來(lái)存儲和處理中、西文信息的代碼。 漢字內碼:用兩個(gè)字節表示。
內碼與國標碼的關(guān)系: 它們的區別在于國際碼兩個(gè)字節的最高位都是“0”,而機內碼兩個(gè)字節的最高位都是“1”。 3.漢字的字形碼 漢字輸出碼又叫做漢字字形碼或漢字字模。
漢字輸出碼的和用是輸出漢字,對漢字字形經(jīng)過(guò)點(diǎn)陣的數字化后形成的一串二進(jìn)制數稱(chēng)為漢字輸出碼。 點(diǎn)陣字形由排成方陣(如16*16、24*24、48*48……)的一組二進(jìn)制數字表示一個(gè)字符。
16*16點(diǎn)陣字形常用于屏幕顯示,筆畫(huà)生硬,細節難以區分:打印輸出常用24*24、40*40、48*48,甚至96*96或更高,點(diǎn)陣的數字越大,說(shuō)明筆鋒越完整,字跡越清晰美觀(guān)。 點(diǎn)陣字形的字節計算:點(diǎn)陣數/8 4.常用漢字輸入法簡(jiǎn)介 模擬練習 【例3·判斷題】'9'的ASCII碼小于'a'的ASCII碼。
( )『正確答案』對【例4·單選題】存儲信息的基本單位是( )。 A.bit B.byte C.KB D.MB『正確答案』B【例5·判斷題】漢字輸入碼是為了解決將漢字輸入計算機而編制的代碼。
( )『正確答案』對【例6·單選題】24*24點(diǎn)陣字庫中的一個(gè)漢字需占( )字節的存儲空間。 A.16 B.72 C.48 D.64『正確答案』B【例7·單選題】不同的漢字輸入方法輸入漢字后,該漢字的內碼是( )的。
A.相同的 B.完全不相同 C.大部分相同 D.部分相同『正確答案』A第三節 計算機硬件 一、計算機系統 一個(gè)完整的計算機系統是由硬件、軟件及用戶(hù)等三部分組成的人機系統。 二、計算機的邏輯結構 計算機體系結構的基本思想:馮·諾依曼原理 1.輸入設備 2.輸出設備 3.存儲器 (1)主存儲器 主存儲器也叫內存儲器,簡(jiǎn)稱(chēng)內存,其特點(diǎn)是存取速度快、可靠性高,但容量有限。
(2)輔助存。
去百度文庫,查看完整內容> 內容來(lái)自用戶(hù):梅悠心理 復習及應試建議:1.考生的復習必須遵守:“80/20的原則”二級考試的公共知識部分的覆蓋面廣,至少涵蓋了計算機應用專(zhuān)業(yè)的四門(mén)核心課程:算法及數據結構、程序設計基礎、軟件工程基礎和數據庫。
事實(shí)上,這些課程本身的涉及面就很廣,難度系數較大。因此,這些課程甚至也是計算機專(zhuān)業(yè)學(xué)生最頭疼的課程,對大多數考生來(lái)說(shuō)其難度之大不言而喻。
所以,考生應把80%的時(shí)間用在20%的重點(diǎn)知識點(diǎn)上,爭取用20%的重點(diǎn)知識點(diǎn)來(lái)答對80%的考題,這是考生復習二級考試的公共知識部分的總體思路。2.復習的關(guān)鍵是考生必須準確判斷和掌握常見(jiàn)考點(diǎn)考生必須能夠準確判斷和掌握常見(jiàn)考點(diǎn),例如:算法部分主要考查算法的概念及算法的復雜度;數據結構部分主要考查最基本的概念、最典型的數據結構和最常見(jiàn)的操作;程序設計部分主要考查程序設計風(fēng)格的基本要求、結構化程序設計的最基本知識和面向對象程序設計的最常見(jiàn)概念;軟件工程基礎部分主要考查軟件工程的基本概念及軟件生命周期的各個(gè)階段的基礎知識;數據庫基礎部分主要考查數據庫基本概念、數據模型、關(guān)系代數基礎知識、數據庫設計方法和步驟。
對常見(jiàn)考點(diǎn)的準確把握會(huì )使考生避免盲目學(xué)習,從而能夠輕松面對考試。二級考試中要求的知識點(diǎn)都是最基本的、最簡(jiǎn)單的,真正需要數據的存儲結構有順序、鏈接、索引等。
其允許插入與刪除的一端稱(chēng)為棧頂,用指針(2)例1.82.3消息的組成包括:(①軟件設計的基本原理是:(動(dòng)態(tài)測試:是基本計算。
計算機二級公共基礎知識總結
數據結構與算法
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)系。
數據的存儲結構有順序、鏈接、索引等。等等
【【上 學(xué) 吧】】 有詳細的資料 自己去看看
計算機二級公共基礎知識是計算機中綜合性知識,占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、算法問(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.493秒