公共基礎(chǔ)ACCESS培訓(xùn)講解_第1頁
公共基礎(chǔ)ACCESS培訓(xùn)講解_第2頁
公共基礎(chǔ)ACCESS培訓(xùn)講解_第3頁
公共基礎(chǔ)ACCESS培訓(xùn)講解_第4頁
公共基礎(chǔ)ACCESS培訓(xùn)講解_第5頁
已閱讀5頁,還剩164頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

公共基礎(chǔ)ACCESS培訓(xùn)講解對(duì)培訓(xùn)學(xué)員要求

1、明確自己,明確目標(biāo)!

2、注重方法,100%投入!

3、團(tuán)隊(duì)合作,共解難題!

4、注重資料,按章按知識(shí)點(diǎn)逐一把握

5、不拋棄不放棄,堅(jiān)持就是勝利!自信——堅(jiān)持——成功2考試方式筆試(選擇題35個(gè)+填空題15空)公共基礎(chǔ)知識(shí)(30分;識(shí)記為主,理解及推導(dǎo)為輔)數(shù)據(jù)庫程序設(shè)計(jì)(70分;假期把握練習(xí)冊(cè))機(jī)試(三大題)以真題為準(zhǔn),強(qiáng)化練習(xí)!基本操作30分簡(jiǎn)單應(yīng)用40分綜合應(yīng)用30分3公共基礎(chǔ)知識(shí)

(四個(gè)部分——筆試-30分)

★記憶為主,理解推導(dǎo)為輔

(暑假必須完成該部分,假后考核!)

一、基本數(shù)據(jù)結(jié)構(gòu)與算法

4本部分主要內(nèi)容算法數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)研究的主要內(nèi)容基本概念和術(shù)語數(shù)據(jù)結(jié)構(gòu)類型線性結(jié)構(gòu)和非線性結(jié)構(gòu)順序存儲(chǔ)與鏈?zhǔn)酱鎯?chǔ)線性表?xiàng):完?duì)列線性鏈表樹與二叉樹查找和排序圖基本數(shù)據(jù)結(jié)構(gòu)與算法5基本數(shù)據(jù)結(jié)構(gòu)與算法1.1算法算法的基本概念(重點(diǎn))算法:解題方案的準(zhǔn)確而完整的描述。算法的基本特征:是一組嚴(yán)謹(jǐn)?shù)囟x運(yùn)算順序的規(guī)則,每一個(gè)規(guī)則都是有效的,是明確的,此順序?qū)⒃谟邢薜拇螖?shù)下終止。算法不等于程序,程序不可能優(yōu)于算法。基本特性可行性:根據(jù)實(shí)際問題設(shè)計(jì)的算法,執(zhí)行得到滿意結(jié)果確定性:每一步驟必須有明確定義,不允許有多義性。有窮性:算法必須能在有限的時(shí)間內(nèi)做完。擁有足夠的情報(bào):輸入和輸出必須擁有足夠的情報(bào):,方可執(zhí)行。6基本數(shù)據(jù)結(jié)構(gòu)與算法1.1算法算法的基本要素(了解)1.對(duì)數(shù)據(jù)對(duì)象的運(yùn)算和操作算術(shù)運(yùn)算:+、-、×、÷等邏輯運(yùn)算:>、<、=、>=、<=、等關(guān)系運(yùn)算:、、等數(shù)據(jù)傳輸:輸入、輸出、賦值等2.算法的控制結(jié)構(gòu)算法中各操作之間的執(zhí)行順序描述算法的工具通常有傳統(tǒng)流程圖、結(jié)構(gòu)化流程圖、算法描述語言等算法可以用順序、選擇、循環(huán)三種基本機(jī)構(gòu)組合而成。7基本數(shù)據(jù)結(jié)構(gòu)與算法1.1算法算法設(shè)計(jì)基本方法(了解)(1)列舉法:根據(jù)問題,列舉所有可能的情況,并用問題中給定的條件檢驗(yàn)?zāi)男┦切枰?,哪些是不需要的。?)歸納法:通過列舉少量的特殊情況,經(jīng)過分析,最后找出一般的關(guān)系。(3)遞推:是指從已知的初始條件出發(fā),逐次推出所要求的各中間結(jié)果和最后結(jié)果。(4)遞歸:將問題逐層分解的過程。(5)減半遞推技術(shù):“減半”,是指將問題規(guī)模減半,而問題性質(zhì)不變;“遞推”,是指重復(fù)“減半”過程。(6)回溯法:分析問題,找出一個(gè)解決總線索,然后沿著這個(gè)線索逐步試探。8基本數(shù)據(jù)結(jié)構(gòu)與算法1.1算法算法的復(fù)雜度:時(shí)間復(fù)雜度、空間復(fù)雜度(重點(diǎn))算法的時(shí)間復(fù)雜度算法時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量。工作量用算法所執(zhí)行的基本運(yùn)算次數(shù)來度量,而算法所執(zhí)行的基本運(yùn)算次數(shù)是問題規(guī)模的函數(shù),即算法的工作量(n)算法空間復(fù)雜度算法空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。存儲(chǔ)空間包括:①算法程序所占的空間、②輸入數(shù)據(jù)所占的空間、③算法執(zhí)行過程中所需要的額外空間。。9基本數(shù)據(jù)結(jié)構(gòu)與算法通關(guān)練習(xí)1.下列敘述中正確的是()。

A.算法的效率只與問題規(guī)模有關(guān),與存儲(chǔ)結(jié)構(gòu)無關(guān)。

B.算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需的計(jì)算工作量。

C.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的。

D.算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)。2.算法的時(shí)間復(fù)雜度取決于()。

A.問題的規(guī)模B.問題的困難度

C.待處理的數(shù)據(jù)的初始狀態(tài)和C3.描述算法的常用方法有()。4.一個(gè)算法的時(shí)間復(fù)雜度是()的函數(shù)。5.算法復(fù)雜度主要包括時(shí)間復(fù)雜度和()復(fù)雜度。BD傳統(tǒng)流程圖、圖、偽代碼問題規(guī)??臻g10基本數(shù)據(jù)結(jié)構(gòu)與算法練習(xí)參考答案1、B2、D3、傳統(tǒng)流程圖、結(jié)構(gòu)化流程圖和偽碼描述語言

4、問題規(guī)模5、空間11基本數(shù)據(jù)結(jié)構(gòu)與算法1.2數(shù)據(jù)結(jié)構(gòu)研究的主要內(nèi)容當(dāng)今計(jì)算機(jī)應(yīng)用的特點(diǎn)(了解)所處理的數(shù)據(jù)量大且具有一定的關(guān)系;對(duì)其操作不再是單純的數(shù)值計(jì)算,而更多地是需要對(duì)其進(jìn)行組織、管理和檢索。應(yīng)用舉例1——學(xué)籍檔案管理(了解)假設(shè)一個(gè)學(xué)籍檔案管理系統(tǒng)應(yīng)包含如下表所示的學(xué)生信息。12基本數(shù)據(jù)結(jié)構(gòu)與算法特點(diǎn)(了解)每個(gè)學(xué)生的信息占據(jù)一行,所有學(xué)生的信息按學(xué)號(hào)順序依次排列構(gòu)成一張表格;表中每個(gè)學(xué)生的信息依據(jù)學(xué)號(hào)的大小存在著一種前后關(guān)系.對(duì)它的操作通常是插入某個(gè)學(xué)生的信息,刪除某個(gè)學(xué)生的信息,更新某個(gè)學(xué)生的信息,按條件檢索某個(gè)學(xué)生的信息等等。1.2數(shù)據(jù)結(jié)構(gòu)研究的主要內(nèi)容13基本數(shù)據(jù)結(jié)構(gòu)與算法應(yīng)用舉例2—制定教學(xué)計(jì)劃(了解)在制定教學(xué)計(jì)劃時(shí),需要考慮各門課程的開設(shè)順序。有些課程需要先導(dǎo)課程,有些則不需要;而有些課程又是其他課程的先導(dǎo)課程。比如,計(jì)算機(jī)專業(yè)課程的開設(shè)情況如下表所示:1.2數(shù)據(jù)結(jié)構(gòu)研究的主要內(nèi)容14基本數(shù)據(jù)結(jié)構(gòu)與算法課程先后關(guān)系的圖形描形式c1

c9

c4

c2

c12

c10

c11

c5

c3

c6

c7

c8

1.2數(shù)據(jù)結(jié)構(gòu)研究的主要內(nèi)容特點(diǎn)(了解)課程的先后關(guān)系用圖結(jié)構(gòu)描述;通過實(shí)施創(chuàng)建圖結(jié)構(gòu),按要求將圖結(jié)構(gòu)中的頂點(diǎn)進(jìn)行線性排序。15基本數(shù)據(jù)結(jié)構(gòu)與算法

數(shù)據(jù)結(jié)構(gòu)主要研究以下三個(gè)方面的問題:重點(diǎn)掌握數(shù)據(jù)的邏輯結(jié)構(gòu):數(shù)據(jù)集合中各元素的信息,及元素之間所固有的邏輯關(guān)系(前后件關(guān)系)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu):各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算主要目的是為了提高數(shù)據(jù)處理的效率。所謂提高數(shù)據(jù)處理的效率,主要包括兩個(gè)方面:一是提高數(shù)據(jù)處理的速度,二是盡量節(jié)省在數(shù)據(jù)處理過程中所占用的計(jì)算機(jī)存儲(chǔ)空間。1.2數(shù)據(jù)結(jié)構(gòu)研究的主要內(nèi)容16基本數(shù)據(jù)結(jié)構(gòu)與算法

數(shù)據(jù)結(jié)構(gòu)是一門研究數(shù)據(jù)組織、存儲(chǔ)和運(yùn)算的一般方法的學(xué)科。一句話,數(shù)據(jù)結(jié)構(gòu)是相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合。(重點(diǎn))1.2.1基本概念和術(shù)語17基本數(shù)據(jù)結(jié)構(gòu)與算法能輸入到計(jì)算機(jī)中并能被計(jì)算機(jī)程序處理的符號(hào)的集合。整數(shù)(1,2)、實(shí)數(shù)(1.1,1.2)字符串()、圖形、聲音。

數(shù)據(jù)結(jié)構(gòu)是一門研究數(shù)據(jù)組織、存儲(chǔ)和運(yùn)算的一般方法的學(xué)科。1.2.1基本概念和術(shù)語(了解)18基本數(shù)據(jù)結(jié)構(gòu)與算法計(jì)算機(jī)管理圖書問題圖書館里有各種卡片:有按書名編排的、有按作者編排的、有按分類編排。如何將查詢圖書的這些信息存入計(jì)算機(jī)中既要考慮查詢時(shí)間短,又要考慮節(jié)省空間

數(shù)據(jù)結(jié)構(gòu)是一門研究數(shù)據(jù)組織、存儲(chǔ)和運(yùn)算的一般方法的學(xué)科。1.2.1基本概念和術(shù)語(了解)19基本數(shù)據(jù)結(jié)構(gòu)與算法最簡(jiǎn)單的辦法之一是建立一張表,每一本書的信息在表中占一行,如

數(shù)據(jù)結(jié)構(gòu)是一門研究數(shù)據(jù)組織、存儲(chǔ)和運(yùn)算的一般方法的學(xué)科。1.2.1基本概念和術(shù)語(了解)20基本數(shù)據(jù)結(jié)構(gòu)與算法

如何將0,1,2,3,4,5,6,7,8,9這10個(gè)數(shù)存放在計(jì)算機(jī)中能最快地達(dá)到你所需要的目的?目的不同,最佳的存儲(chǔ)方方法就不同。從大到小排列:9,8,7,6,5,4,3,2,1,0輸出偶數(shù):0,2,4,6,8,1,3,5,7,9數(shù)據(jù)元素在計(jì)算機(jī)中的表示

數(shù)據(jù)結(jié)構(gòu)是一門研究數(shù)據(jù)組織、存儲(chǔ)和運(yùn)算的一般方法的學(xué)科。1.2.1基本概念和術(shù)語(了解)21基本數(shù)據(jù)結(jié)構(gòu)與算法對(duì)數(shù)據(jù)結(jié)構(gòu)中的節(jié)點(diǎn)進(jìn)行操作處理(插入、刪除、修改、查找、排序)

數(shù)據(jù)結(jié)構(gòu)是一門研究數(shù)據(jù)組織、存儲(chǔ)和運(yùn)算的一般方法的學(xué)科。1.2.1基本概念和術(shù)語(了解)22基本數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)元素()

數(shù)據(jù)元素是數(shù)據(jù)的基本單位,即數(shù)據(jù)集合中的個(gè)體。有時(shí)一個(gè)數(shù)據(jù)元素可由若干數(shù)據(jù)項(xiàng)()組成。數(shù)據(jù)項(xiàng)是數(shù)據(jù)的最小單位。數(shù)據(jù)元素亦稱節(jié)點(diǎn)或記錄。1.2.1基本概念和術(shù)語(重點(diǎn))23基本數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)邏輯結(jié)構(gòu)描述(D,R)有限個(gè)數(shù)據(jù)元素的集合有限個(gè)節(jié)點(diǎn)間關(guān)系的集合1.2.1基本概念和術(shù)語如:(D,R)

{,…}{(),(),…()}如:(D,R)

{父親,兒子,女兒}{(父親,兒子),(父親,女兒)}(了解)24基本數(shù)據(jù)結(jié)構(gòu)與算法1.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)2、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)3、數(shù)據(jù)的運(yùn)算:檢索、排序、插入、刪除、修改等。A.線性結(jié)構(gòu)B.非線性結(jié)構(gòu)A順序存儲(chǔ)B鏈?zhǔn)酱鎯?chǔ)線性表?xiàng)j?duì)列樹形結(jié)構(gòu)圖形結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)的三個(gè)方面1.3數(shù)據(jù)結(jié)構(gòu)類型(重點(diǎn))C索引存儲(chǔ)25基本數(shù)據(jù)結(jié)構(gòu)與算法1.3.1線性結(jié)構(gòu)和非線性結(jié)構(gòu)

線性結(jié)構(gòu)條件(1)有且只有一個(gè)根結(jié)點(diǎn);(2)每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。(3)首節(jié)點(diǎn)無前件,尾節(jié)點(diǎn)無后件。非線性結(jié)構(gòu):不滿足線性結(jié)構(gòu)條件的數(shù)據(jù)結(jié)構(gòu)注意:在一個(gè)線性結(jié)構(gòu)中插入或刪除任何一個(gè)節(jié)點(diǎn)后還應(yīng)是線性結(jié)構(gòu);否則,不能稱為線性結(jié)構(gòu)。只有一個(gè)結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)是非線性結(jié)構(gòu)。(重點(diǎn))26基本數(shù)據(jù)結(jié)構(gòu)與算法1.3.1線性結(jié)構(gòu)和非線性結(jié)構(gòu)全校學(xué)生檔案管理的樹形結(jié)構(gòu)的組織方式非線性結(jié)構(gòu)

樹形結(jié)構(gòu)(了解)27基本數(shù)據(jù)結(jié)構(gòu)與算法ABCDEFGH樹形結(jié)構(gòu)—結(jié)點(diǎn)間具有分層次的連接關(guān)系HBCDEFGA1.3.1線性結(jié)構(gòu)和非線性結(jié)構(gòu)

樹形結(jié)構(gòu)(了解)28基本數(shù)據(jù)結(jié)構(gòu)與算法1.3.1線性結(jié)構(gòu)和非線性結(jié)構(gòu)

圖形結(jié)構(gòu)(網(wǎng)狀結(jié)構(gòu)):節(jié)點(diǎn)間的連接任意1423D={1,2,3,4}R={(1,2),(1,3),(1,4),(2,3)(3,4),(2,4)}無向圖213D={1,2,3}R={(1,2),(2,3),(1,3)}有向圖(了解)29基本數(shù)據(jù)結(jié)構(gòu)與算法Lo+(n-1)*m元素n……..元素i……..元素2元素1Lo

Lo+mLo+(i-1)*m存儲(chǔ)地址存儲(chǔ)內(nèi)容Loc(i)=Lo+(i-1)*m每個(gè)元素所占用的存儲(chǔ)單元大小(Byte)1.3.2順序存儲(chǔ)與鏈?zhǔn)酱鎯?chǔ)

順序存儲(chǔ)常用于線性數(shù)據(jù)結(jié)構(gòu),將邏輯上相鄰的數(shù)據(jù)元素存儲(chǔ)在物理上相鄰的存儲(chǔ)單元里。三個(gè)弱點(diǎn)插入或刪除操作時(shí),需移動(dòng)大量元素。長(zhǎng)度變化較大時(shí),需按最大空間分配。表的容量難以擴(kuò)充(重點(diǎn))30基本數(shù)據(jù)結(jié)構(gòu)與算法每個(gè)節(jié)點(diǎn)都由兩部分組成:數(shù)據(jù)域和指針域。數(shù)據(jù)域:存放元素本身的數(shù)據(jù),指針域:存放指針,體現(xiàn)數(shù)據(jù)元素之間的邏輯聯(lián)系1.3.2順序存儲(chǔ)與鏈?zhǔn)酱鎯?chǔ)1536元素21400元素11346元素3∧元素4head1345

鏈接存儲(chǔ)結(jié)構(gòu)特點(diǎn)邏輯上相鄰的節(jié)點(diǎn)物理上不必相鄰。最大優(yōu)點(diǎn):插入、刪除靈活(不必移動(dòng)節(jié)點(diǎn),僅改變節(jié)點(diǎn)中的指針)。鏈接存儲(chǔ)結(jié)構(gòu)(重點(diǎn))31基本數(shù)據(jù)結(jié)構(gòu)與算法1346

元素31536…….……..…….1536

元素21400…….……..…….∧

元素413461400

元素11345

指針

存儲(chǔ)內(nèi)容存儲(chǔ)地址1.3.2順序存儲(chǔ)與鏈?zhǔn)酱鎯?chǔ)鏈?zhǔn)酱鎯?chǔ)的地址映射表指向首元素位置1536元素21400元素11346元素3∧元素4head1345

(重點(diǎn))每個(gè)鏈?zhǔn)浇Y(jié)構(gòu)都是以頭結(jié)點(diǎn)()開始,以尾結(jié)點(diǎn)指針域存放0或表示鏈表的結(jié)束。32基本數(shù)據(jù)結(jié)構(gòu)與算法1、鏈表不具有的特點(diǎn)是()

A)不必事先估計(jì)存儲(chǔ)空間B)插入刪除不需要移動(dòng)元素

C)可隨機(jī)訪問任一元素D)所需空間與線性表長(zhǎng)度成正比2、數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無關(guān)的是數(shù)據(jù)的()

A)存儲(chǔ)結(jié)構(gòu) B)物理結(jié)構(gòu)

C)邏輯結(jié)構(gòu) D)物理和存儲(chǔ)結(jié)構(gòu)3、根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分成()

A)動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu) B)緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)

C)線性結(jié)構(gòu)和非線性結(jié)構(gòu)D)內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)4、數(shù)據(jù)處理的最小單位是()

A)數(shù)據(jù)B)數(shù)據(jù)元素C)數(shù)據(jù)項(xiàng)D)數(shù)據(jù)結(jié)構(gòu)通關(guān)練習(xí)CCCC33基本數(shù)據(jù)結(jié)構(gòu)與算法5、下列敘述中,錯(cuò)誤的是()

A)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)

B)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率無關(guān)

C)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占空間不一定是連續(xù)的

D)一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)6、線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是()A)順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)

B)隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)

C)隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)

D)任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu)7、數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)的一門學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算,以及()

A)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu) B)計(jì)算方法

C)數(shù)據(jù)映象D)邏輯存儲(chǔ)通關(guān)練習(xí)BBA34基本數(shù)據(jù)結(jié)構(gòu)與算法8、下列敘述中正確的是()A)程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)B)程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)C)程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D)以上都不對(duì)9、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()A)數(shù)據(jù)所占的存儲(chǔ)空間B)數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示C)數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式D)存儲(chǔ)在外存中的數(shù)據(jù)10、數(shù)據(jù)()包括集合、線性結(jié)構(gòu)、樹形結(jié)構(gòu)和圖4種類型。A)算法描述B)基本運(yùn)算C)邏輯結(jié)構(gòu)D)存儲(chǔ)結(jié)構(gòu)通關(guān)練習(xí)ABC35基本數(shù)據(jù)結(jié)構(gòu)與算法11、數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的表示是指()A)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)B)數(shù)據(jù)結(jié)構(gòu)C)數(shù)據(jù)的邏輯機(jī)構(gòu)D)數(shù)據(jù)元素間的關(guān)系12、數(shù)據(jù)結(jié)構(gòu)研究的主要內(nèi)容包括()、()和數(shù)據(jù)元素之間的三方面聯(lián)系。13、順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置()的存儲(chǔ)單元中。14、數(shù)據(jù)的基本單位是()。15、數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于()16、數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和()兩大類。通關(guān)練習(xí)A36基本數(shù)據(jù)結(jié)構(gòu)與算法練習(xí)參考答案1~5、6~11、

12、數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)、數(shù)據(jù)邏輯結(jié)構(gòu)

13、相鄰

14、數(shù)據(jù)元素

15、存儲(chǔ)結(jié)構(gòu)

16、非線性結(jié)構(gòu)37基本數(shù)據(jù)結(jié)構(gòu)與算法1.3.3線性表線性表的基本概念(了解)線性表由一組數(shù)據(jù)元素構(gòu)成,數(shù)據(jù)元素的位置只取決于自己的序號(hào),元素之間的相對(duì)位置是線性的。非空線性表的結(jié)構(gòu)特征(重點(diǎn))有且只有一個(gè)根結(jié)點(diǎn)a1,它無前件;有且只有一個(gè)終端結(jié)點(diǎn),它無后件;除根結(jié)點(diǎn)與終端結(jié)點(diǎn)外,其他所有結(jié)點(diǎn)有且只有一個(gè)前件,也有且只有一個(gè)后件。結(jié)點(diǎn)個(gè)數(shù)n稱為線性表的長(zhǎng)度,當(dāng)0時(shí),稱為空表。Lo+(n-1)*m元素n……..元素i……..元素2元素1Lo

Lo+mLo+(i-1)*m存儲(chǔ)地址存儲(chǔ)內(nèi)容Loc(i)=Lo+(i-1)*m38基本數(shù)據(jù)結(jié)構(gòu)與算法線性表的插入/刪除操作在長(zhǎng)度為n的線性表中第i個(gè)數(shù)據(jù)元素之前插入數(shù)據(jù)元素e

則移動(dòng)元素個(gè)數(shù):1線性表插入/刪除運(yùn)算,平均移動(dòng)元素的個(gè)數(shù)為:2,最壞情況下是n.1.3.3線性表(重點(diǎn))39基本數(shù)據(jù)結(jié)構(gòu)與算法線性表的插入操作(時(shí)間復(fù)雜度O(n))插入前插入xlastMaxsize-1aia1a0ai-1ai+1an-1a0a1ai-1aian-1lastMaxsize-1后移后ai+1a0a1ai-1ai+1ai+1anxlastMaxsize-1插入后ai+21.3.3線性表(了解)40基本數(shù)據(jù)結(jié)構(gòu)與算法線性表的刪除操作(時(shí)間復(fù)雜度O(n))1.3.3線性表a0a1ai-1aiai+1an-1刪除lastmaxsize刪除前a0a1ai-1ai+2an-1lastmaxsize刪除后ai+1(了解)41基本數(shù)據(jù)結(jié)構(gòu)與算法1、線性表(a123,…,…),下列說法正確的是()

A)每個(gè)元素都有一個(gè)直接前件和直接后件

B)線性表中至少要有一個(gè)元素

C)表中諸元素的排列順序必須是由小到大或由大到小

D)除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素都有一個(gè)且只有一個(gè)直接前件和直接后件2、線性表采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)時(shí),則內(nèi)存中可用存儲(chǔ)單元地址

A)必須是連續(xù)的 B)部分地址必須是連續(xù)的

C)一定是不連續(xù)的D)連續(xù)不連續(xù)都可以過關(guān)練習(xí)DD42基本數(shù)據(jù)結(jié)構(gòu)與算法練習(xí)參考答案3、在一個(gè)長(zhǎng)度為n的順序表中,向第i個(gè)元素位置插入一個(gè)新元素時(shí),需要向后移動(dòng)()個(gè)元素

A)B)iC)1D)14、長(zhǎng)度為n的順序存儲(chǔ)線性表,當(dāng)在任何位置上插入一個(gè)元素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)為()。

D243基本數(shù)據(jù)結(jié)構(gòu)與算法1.3.4棧和隊(duì)列

棧和隊(duì)列是兩種運(yùn)算時(shí)要受到某些特殊限制的線性表,故也稱為限定性的數(shù)據(jù)結(jié)構(gòu)。棧:限定只能在表的一端進(jìn)行插入和刪除的特殊的線性表,此種結(jié)構(gòu)稱為后進(jìn)先出()。設(shè)棧(a1,a2,…,…,)其中a1是棧底元素,是棧頂元素。棧頂():允許插入和刪除的一端;約定始終指向新數(shù)據(jù)元素將存放的位置。棧底():不允許插入和刪除的一端。棧是先進(jìn)后出,后進(jìn)先出結(jié)構(gòu)

a1a2….an

進(jìn)棧出棧棧頂棧底(重點(diǎn))44基本數(shù)據(jù)結(jié)構(gòu)與算法隊(duì)列的主要運(yùn)算設(shè)置一個(gè)空隊(duì)列;令0插入一個(gè)新的隊(duì)尾()元素,稱為進(jìn)隊(duì);刪除隊(duì)頭()元素,稱為出隊(duì);讀取隊(duì)頭元素;a1,a2,a3,a4,…………1,隊(duì)頭隊(duì)尾1.3.4棧和隊(duì)列隊(duì)列:限定只能在表的一端進(jìn)行插入,在表的另一端進(jìn)行刪除的線性表。此種結(jié)構(gòu)稱為先進(jìn)先出()表。(重點(diǎn))45基本數(shù)據(jù)結(jié)構(gòu)與算法

3210(a)rear=front=0(隊(duì)空)

e3

e4

(c)e1,e2出隊(duì),e4入隊(duì)rear=4fronte1e2e3

(b)rearfront(b)e1,e2,e3入隊(duì)1.3.4棧和隊(duì)列隊(duì)列的主要運(yùn)算隊(duì)空時(shí),令0;元素個(gè)數(shù)=當(dāng)有新元素入隊(duì)時(shí),尾指針加1,當(dāng)有元素出隊(duì)時(shí),頭指針加1。故在非空隊(duì)列中,頭指針始終指向隊(duì)頭元素前一個(gè)位置,而尾指針始終指向隊(duì)尾元素的位置(重點(diǎn))46基本數(shù)據(jù)結(jié)構(gòu)與算法循環(huán)隊(duì)列元素個(gè)數(shù)=()na1,a2,a3,a4,…………1,隊(duì)頭隊(duì)尾1.3.4棧和隊(duì)列循環(huán)隊(duì)列:首尾相接的隊(duì)列,邏輯上形成一個(gè)環(huán)狀。(了解)47基本數(shù)據(jù)結(jié)構(gòu)與算法1、棧和隊(duì)列的共同特點(diǎn)是()

A)都是先進(jìn)先出B)都是先進(jìn)后出

C)只允許在端點(diǎn)處插入和刪除元素D)沒有共同點(diǎn)2、如果進(jìn)棧序列為e1234,則可能的出棧序列是()

A)e3142 B)e2431C)e3412 D)任意順序3、在順序棧中進(jìn)行退棧操作時(shí),()。A)誰先誰后都可以B)先移動(dòng)棧頂指針,后取出元素C)不分先后,同時(shí)進(jìn)行D)先取出元素,后移動(dòng)棧頂指針過關(guān)練習(xí)CBD48基本數(shù)據(jù)結(jié)構(gòu)與算法4、下列關(guān)于隊(duì)列的敘述中正確的是()A)在隊(duì)列中只能插入數(shù)據(jù)B)在隊(duì)列中只能刪除數(shù)據(jù)C)隊(duì)列是先進(jìn)先出的線性表D)隊(duì)列是后進(jìn)先出的線性表5、下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是()

A)線性鏈表B)棧C)循環(huán)鏈表D)順序表6、下列關(guān)于棧的敘述中正確的是()A)在棧中只能插入數(shù)據(jù)B)在棧中只能刪除數(shù)據(jù)C)棧是先進(jìn)先出的線性表D)棧是后進(jìn)先出的線性表過關(guān)練習(xí)CBD49基本數(shù)據(jù)結(jié)構(gòu)與算法8、線性表的存儲(chǔ)結(jié)構(gòu)主要分為順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。隊(duì)列是一種特殊的線性表,循環(huán)隊(duì)列是隊(duì)列的()存儲(chǔ)結(jié)構(gòu)。9、數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于()。10、通常元素進(jìn)棧的順序是()。11、從一個(gè)循環(huán)隊(duì)列中刪除一個(gè)元素,通常的操作是()。過關(guān)練習(xí)注意:一般元素進(jìn)?;蛉腙?duì)的順序(即插入一個(gè)元素):先移動(dòng)棧頂指針或隊(duì)尾指針,然后插入元素。元素出?;虺鲫?duì)的順序(即刪除一個(gè)元素):先讀出元素,然后移動(dòng)棧頂指針或?qū)︻^指針。順序線性結(jié)構(gòu)先移動(dòng)棧頂指針,后存入元素先取出元素,后移動(dòng)對(duì)頭指針50基本數(shù)據(jù)結(jié)構(gòu)與算法練習(xí)參考答案1~5、6~7、

8、順序9、線性結(jié)構(gòu)

10、先移動(dòng)棧頂指針,后存入元素

11、先取出元素,后移動(dòng)對(duì)頭指針51基本數(shù)據(jù)結(jié)構(gòu)與算法1.3.5線性鏈表線性表順序存儲(chǔ)結(jié)構(gòu)的特點(diǎn)簡(jiǎn)單、方便,要求數(shù)據(jù)元素依次存放在連續(xù)的存儲(chǔ)單元中,從而利用數(shù)據(jù)元素的存儲(chǔ)順序表示相應(yīng)的邏輯順序,這種存儲(chǔ)方式屬于靜態(tài)存儲(chǔ)形式。暴露的問題在做插入或刪除元素的操作時(shí),會(huì)產(chǎn)生大量的數(shù)據(jù)元素移動(dòng);對(duì)于長(zhǎng)度變化較大的線性表,要一次性地分配足夠的存儲(chǔ)空間,但這些空間常常又得不到充分的利用;線性表的容量難以擴(kuò)充。52基本數(shù)據(jù)結(jié)構(gòu)與算法

將線性表的元素放到一個(gè)具有頭指針的鏈表中,鏈表中每個(gè)結(jié)點(diǎn)包含數(shù)據(jù)域和指針域。

數(shù)據(jù)域存放數(shù)據(jù),指針域存放后繼結(jié)點(diǎn)的地址,最后一個(gè)結(jié)點(diǎn)的指針域?yàn)榭?即為0或)。邏輯上相鄰的數(shù)據(jù)元素在內(nèi)存中的物理存儲(chǔ)空間不一定相鄰。線性鏈表分為:?jiǎn)捂湵?、雙鏈表、循環(huán)鏈表1.3.5線性鏈表

a1

a2∧an

a3

L…..帶頭結(jié)點(diǎn)的單鏈表(重點(diǎn))53基本數(shù)據(jù)結(jié)構(gòu)與算法單鏈表:每個(gè)結(jié)點(diǎn)只有一個(gè)指針域,由該指針只能找到其后件結(jié)點(diǎn)。1.3.5線性鏈表54基本數(shù)據(jù)結(jié)構(gòu)與算法1.3.5線性鏈表線性鏈表的特點(diǎn)插入、刪除節(jié)點(diǎn)方便(不必移動(dòng)節(jié)點(diǎn),僅改變節(jié)點(diǎn)中的指針)只能順序存取(查找只能從頭指針開始),不能隨機(jī)存取。適應(yīng)于數(shù)據(jù)的動(dòng)態(tài)變化(重點(diǎn))55基本數(shù)據(jù)結(jié)構(gòu)與算法1、鏈表不具有的特點(diǎn)是()

A)不必事先估計(jì)存儲(chǔ)空間B)可隨機(jī)訪問任一元素

C)插入刪除不需要移動(dòng)元素D)所需空間與線性表長(zhǎng)度成正比2、用鏈表表示線性表的優(yōu)點(diǎn)是()

A)便于隨機(jī)存取B)花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少

C)便于插入和刪除操作

D)數(shù)據(jù)元素的物理順序與邏輯順序相同3、線性表(a123,…,…),下列說法正確的是()

A)每個(gè)元素都有一個(gè)直接前件和直接后件

B)線性表中至少要有一個(gè)元素

C)表中諸元素的排列順序必須是由小到大或由大到小

D)除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素都有一個(gè)且只有一個(gè)直接前件和直接后件過關(guān)練習(xí)BCD56基本數(shù)據(jù)結(jié)構(gòu)與算法4、下列敘述中正確的是()。

A)線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

B)棧與隊(duì)列是非線性結(jié)構(gòu)

C)雙向鏈表是非線性結(jié)構(gòu)

D)只有根結(jié)點(diǎn)的二叉樹是線性結(jié)構(gòu)5、循環(huán)鏈表的主要優(yōu)點(diǎn)是()

A)不再需要頭指針了

B)從表中任一結(jié)點(diǎn)出發(fā)都能訪問到整個(gè)鏈表

C)在進(jìn)行插入、刪除運(yùn)算時(shí),能更好的保證鏈表不斷開

D)已知某個(gè)結(jié)點(diǎn)的位置后,能夠容易的找到它的直接前件

過關(guān)練習(xí)AB57基本數(shù)據(jù)結(jié)構(gòu)與算法6、線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是

A)順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)

B)隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)

C)隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)

D)任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu)7、用鏈表表示線性表的突出優(yōu)點(diǎn)是()。8、長(zhǎng)度為n的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)為()。過關(guān)練習(xí)B插入刪除節(jié)點(diǎn)方便258基本數(shù)據(jù)結(jié)構(gòu)與算法練習(xí)參考答案1~6、

7、插入、刪除結(jié)點(diǎn)方便

8、259基本數(shù)據(jù)結(jié)構(gòu)與算法樹的定義:由一個(gè)或多個(gè)結(jié)點(diǎn)組成的有限集合。僅有一個(gè)根結(jié)點(diǎn),結(jié)點(diǎn)間有明顯的層次結(jié)構(gòu)關(guān)系。ACGT2

DHIT3

J

MBELKT1

F

現(xiàn)實(shí)世界中,能用樹的結(jié)構(gòu)表示:學(xué)校的行政關(guān)系、書的層次結(jié)構(gòu)、人類的家族血緣關(guān)系等。1.3.6樹與二叉樹60基本數(shù)據(jù)結(jié)構(gòu)與算法樹的基本概念:結(jié)點(diǎn)():樹中的元素結(jié)點(diǎn)的度():結(jié)點(diǎn)擁有的子樹數(shù)(后件數(shù))。樹的度:所有結(jié)點(diǎn)中最大的度結(jié)點(diǎn)的層次:從根結(jié)點(diǎn)開始算起,根為第一層。葉子():度為零的結(jié)點(diǎn),也稱端結(jié)點(diǎn)。深度/高度():樹中結(jié)點(diǎn)的最大層次數(shù)。ACGT2

DHIT3

J

MBELKT1

F1.3.6樹與二叉樹(重點(diǎn))61基本數(shù)據(jù)結(jié)構(gòu)與算法二叉樹()的定義二叉樹的五種基本形態(tài)

空二叉樹

僅有根結(jié)點(diǎn)

右子樹為空

左子樹為空左右子樹均非空1.3.6樹與二叉樹二叉樹是一種很有用的非線性結(jié)構(gòu),它具有以下兩個(gè)特點(diǎn):1)非空二叉樹只有一個(gè)根結(jié)點(diǎn);2)每一個(gè)結(jié)點(diǎn)最多有兩棵子樹,且分別稱為該結(jié)點(diǎn)的左子樹與右子樹。次序不能顛倒。(重點(diǎn))62基本數(shù)據(jù)結(jié)構(gòu)與算法滿二叉樹423167891011121314155

特點(diǎn):所有分支結(jié)點(diǎn)都存在左右子樹,且所有葉子結(jié)點(diǎn)都在同一層上。即每一層上都含有最大結(jié)點(diǎn)數(shù)。1.3.6樹與二叉樹(重點(diǎn))63基本數(shù)據(jù)結(jié)構(gòu)與算法423167891011125

非完全二叉樹

完全二叉樹423167891011125

完全二叉樹

特點(diǎn):除最后一層外,每一層都取最大結(jié)點(diǎn)數(shù),最后一層結(jié)點(diǎn)都集中在該層最左邊的若干位置。1.3.6樹與二叉樹(重點(diǎn))注意:滿二叉樹是完全二叉樹,完全二叉樹不一定是滿二叉樹。64性質(zhì)1:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。例子1:某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有個(gè)葉子結(jié)點(diǎn)。二叉樹的性質(zhì):6519算法與數(shù)據(jù)結(jié)構(gòu)65性質(zhì)2:二叉樹的第i層上至多有21(i1)個(gè)結(jié)點(diǎn)二叉樹的性質(zhì):423167891011121314155第三層上(3),有23-1=4個(gè)節(jié)點(diǎn)。第四層上(4),有24-1=8個(gè)節(jié)點(diǎn)。66性質(zhì)3:深度為h的二叉樹中至多含有21個(gè)結(jié)點(diǎn)423167891011121314155此樹的深度4,共有24-1=15個(gè)節(jié)點(diǎn)。二叉樹的性質(zhì):67基本數(shù)據(jù)結(jié)構(gòu)與算法A、二叉樹的第i層上最多有21(i1)個(gè)結(jié)點(diǎn)。B、深度為h的二叉樹中最多含有21個(gè)結(jié)點(diǎn)。C、若在任意一棵二叉樹中,有n0個(gè)葉子結(jié)點(diǎn)(度為0),有n2個(gè)度為2的結(jié)點(diǎn),則:n02+1D、具有n個(gè)結(jié)點(diǎn)的二叉樹的深度至少為[2n]+1,其中[2n]表示2n的整數(shù)部分。二叉樹的基本性質(zhì)總結(jié)4231678910111213141551.3.6樹與二叉樹第三層(3),有23-1=4個(gè)節(jié)點(diǎn)深度4,共有24-1=15個(gè)節(jié)點(diǎn)n0=82=702+115個(gè)節(jié)點(diǎn),深度=[215]+1=4(重點(diǎn))68基本數(shù)據(jù)結(jié)構(gòu)與算法E、具有n個(gè)結(jié)點(diǎn)的完全二叉樹的深度為[2n]+1,其中[2n]表示2n的整數(shù)部分。F、任意完全二叉樹:度為1的結(jié)點(diǎn)數(shù)只能為0或1二叉樹的基本性質(zhì)總結(jié)1.3.6樹與二叉樹一般情況下(規(guī)律):1、任意二叉樹總結(jié)點(diǎn)數(shù):0122、任意二叉樹中總有:n02+13、任意完全二叉樹中總有:n1=0或n1=1(重點(diǎn))69

對(duì)于完全二叉樹而言,通用規(guī)律:若它的結(jié)點(diǎn)個(gè)數(shù)為偶數(shù),則該二叉樹中: 葉子結(jié)點(diǎn)的個(gè)數(shù)=非葉子結(jié)點(diǎn)的個(gè)數(shù)若它的結(jié)點(diǎn)個(gè)數(shù)為奇數(shù),則該二叉樹中: 葉子結(jié)點(diǎn)的個(gè)數(shù)=非葉子結(jié)點(diǎn)的個(gè)數(shù)+1

(即葉子結(jié)點(diǎn)數(shù)比非葉子結(jié)點(diǎn)數(shù)多一個(gè))(重點(diǎn))1.3.6樹與二叉樹70

實(shí)題講解1、設(shè)一棵完全二叉樹共有700個(gè)結(jié)點(diǎn),則在該二叉樹中有個(gè)葉子結(jié)點(diǎn)。2、在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()

A)32B)31C)16D)15算法與數(shù)據(jù)結(jié)構(gòu)√350C71基本數(shù)據(jù)結(jié)構(gòu)與算法E、設(shè)完全二叉樹共有n個(gè)結(jié)點(diǎn),如從根結(jié)點(diǎn)開始,按層序(每一層從左到右)用自然數(shù)1,2,…給結(jié)點(diǎn)進(jìn)行編號(hào),則對(duì)于編號(hào)為k(1,2,…)的結(jié)點(diǎn)有以下結(jié)論:①若1,則該結(jié)點(diǎn)為根結(jié)點(diǎn),它沒有父結(jié)點(diǎn);若k>1,則該結(jié)點(diǎn)的父結(jié)點(diǎn)的編號(hào)為(2)。②若2k≤n,則結(jié)點(diǎn)k的左子結(jié)點(diǎn)編號(hào)為2k;否則該結(jié)點(diǎn)無左子結(jié)點(diǎn)(顯然也沒有右子結(jié)點(diǎn))。③若21≤n,則結(jié)點(diǎn)k的右子結(jié)點(diǎn)編號(hào)為21;否則該結(jié)點(diǎn)無右子結(jié)點(diǎn)。二叉樹的基本性質(zhì)(該性質(zhì)注意以特殊推導(dǎo)一般)4231678910111213141551.3.6樹與二叉樹例如結(jié)點(diǎn)6,其父結(jié)點(diǎn)為3,左子結(jié)點(diǎn)為12,左子結(jié)點(diǎn)為13(了解)72基本數(shù)據(jù)結(jié)構(gòu)與算法1.3.6樹與二叉樹二叉樹的存儲(chǔ)結(jié)構(gòu)順序存儲(chǔ)結(jié)構(gòu)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)(了解)73基本數(shù)據(jù)結(jié)構(gòu)與算法二叉樹的遍歷遍歷是指按某條搜索路線尋訪樹中每個(gè)結(jié)點(diǎn),且每個(gè)結(jié)點(diǎn)只被訪問一次。按先左后右的原則,一般使用三種遍歷:先序遍歷(DLR):

訪問根結(jié)點(diǎn),按先序遍歷左子樹,按先序遍歷右子樹。中序遍歷(LDR):

按中序遍歷左子樹,訪問根結(jié)點(diǎn),按中序遍歷右子樹。后序遍歷(LRD):

按后序遍歷左子樹,按后序遍歷右子樹,訪問根結(jié)點(diǎn)。二叉樹為空時(shí),執(zhí)行空操作,即空二叉樹已遍歷完。1.3.6樹與二叉樹(重點(diǎn))74基本數(shù)據(jù)結(jié)構(gòu)與算法遍歷算法先序遍歷:DLR中序遍歷:LDR后序遍歷:LRDADBCT1T2T3DLRADLRDLR>B>>D>>CDLR以先序遍歷DLR為例演示遍歷過程

1.3.6樹與二叉樹(重點(diǎn))7576基本數(shù)據(jù)結(jié)構(gòu)與算法1、已知一棵二叉樹前序遍歷和中序遍歷分別為和,則該二叉樹的后序遍歷為()

A) B)C) D)2、樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是()

A)有且只有1B)1或多于1C)0或1 D)至少23、在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()

A)32 B)31C)16 D)154、下列敘述中正確的是()

A)線性表是線性結(jié)構(gòu) B)棧與隊(duì)列是非線性結(jié)構(gòu)

C)線性鏈表是非線性結(jié)構(gòu) D)二叉樹是線性結(jié)構(gòu)

過關(guān)練習(xí)BCCA77基本數(shù)據(jù)結(jié)構(gòu)與算法5、具有3個(gè)結(jié)點(diǎn)的二叉樹有()

A)2種形態(tài)B)4種形態(tài)C)7種形態(tài)D)5種形態(tài)6、設(shè)有下列二叉樹,其前序遍歷的結(jié)果為()

A)B)C)D)7、一棵二叉樹中,共有70個(gè)葉子結(jié)點(diǎn)與80個(gè)度為1的結(jié)點(diǎn),則其總結(jié)點(diǎn)為()。

A)219 B)221C)229D)231過關(guān)練習(xí)DBA78基本數(shù)據(jù)結(jié)構(gòu)與算法8、設(shè)一棵二叉樹中有3個(gè)葉子結(jié)點(diǎn),有8個(gè)度為1的結(jié)點(diǎn),則該二叉樹中總的結(jié)點(diǎn)數(shù)為()

A)12 B)13C)14D)159、設(shè)有下列二叉樹,中序遍歷的結(jié)果為()

A)B)C)D)過關(guān)練習(xí)BB79基本數(shù)據(jù)結(jié)構(gòu)與算法10、在樹結(jié)構(gòu)中,樹根結(jié)點(diǎn)沒有()11、在深度為7的滿二叉樹中,度為2的結(jié)點(diǎn)個(gè)數(shù)為()。12、一棵二叉樹第6層(根結(jié)點(diǎn)為第1層)的結(jié)點(diǎn)數(shù)最多為()個(gè)。13、深度為K的完全二叉樹,至少有()個(gè)結(jié)點(diǎn),至多有()個(gè)結(jié)點(diǎn),若按至上而下,從左到右的次序編號(hào)(從1開始),則編號(hào)最小的葉子結(jié)點(diǎn)的編號(hào)是()。過關(guān)練習(xí)前件633221212180基本數(shù)據(jù)結(jié)構(gòu)與算法練習(xí)參考答案1~5、6~9、

10、前件

11、6312、3213、21,21,2181基本數(shù)據(jù)結(jié)構(gòu)與算法查找:在一個(gè)給定的數(shù)據(jù)結(jié)構(gòu)中,根據(jù)給定的條件找到滿足條件的結(jié)點(diǎn)。不同的數(shù)據(jù)結(jié)構(gòu)采用不同的查找方法。查找的效率直接影響數(shù)據(jù)處理的效率。平均查找長(zhǎng)度:查找過程中比較的次數(shù)查找的結(jié)果查找成功:找到滿足條件的結(jié)點(diǎn)查找失敗:找不到滿足條件的結(jié)點(diǎn)。1.3.7查找和排序82基本數(shù)據(jù)結(jié)構(gòu)與算法順序查找(線性查找)對(duì)給定的一關(guān)鍵字K,從線性表的一端開始,逐個(gè)進(jìn)行記錄的關(guān)鍵字和K的比較,直到找到關(guān)鍵字等于K的記錄或到達(dá)表的另一端??梢圆捎脧那跋蚝蟛椋部刹捎脧暮笙蚯安榈姆椒?。在平均情況下,大約要與表中一半以上元素進(jìn)行比較,效率較低。最壞情況下需要比較n次。時(shí)間復(fù)雜度=O(n)或n在下面兩種情況下只能采取順序查找:線性表為無序表(元素排列是無序的);即使是有序線性表,但采用的是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。1.3.7查找和排序(重點(diǎn))83基本數(shù)據(jù)結(jié)構(gòu)與算法折半查找(二分法查找)思想:先確定待查找記錄所在的范圍,然后逐步縮小范圍,直到找到或確認(rèn)找不到該記錄為止。前提:必須在具有順序存儲(chǔ)結(jié)構(gòu)的有序表中進(jìn)行。分三種情況:中間項(xiàng)()/2不進(jìn)位取整若中間項(xiàng)的值等于x,則說明已查到。若x小于中間項(xiàng)的值,則在線性表的前半部分查找;若x大于中間項(xiàng)的值,則在線性表的后半部分查找。特點(diǎn):比順序查找方法效率高。最壞的情況下,需要比較2n次。1.3.7查找和排序(重點(diǎn))84折半查找(二分法查找)算法

假設(shè)查找表存放在數(shù)組a的a[1]~a[n]中,且升序,查找關(guān)鍵字值為k。折半查找的主要步驟為:(1)置初始查找范圍:1,;(2)求查找范圍中間項(xiàng):()/2(3)將指定的關(guān)鍵字值k與中間項(xiàng)a[]比較。若相等,查找成功,找到的數(shù)據(jù)元素為此時(shí)指向的位置;若小于,查找范圍的低端數(shù)據(jù)元素指針不變,高端數(shù)據(jù)元素指針更新為1;

若大于,查找范圍的高端數(shù)據(jù)元素指針不變,低端數(shù)據(jù)元素指針更新為1;(4)重復(fù)步驟(2)、(3)直到查找成功或查找范圍空(>),即查找失敗為止。(5)如果查找成功,返回找到元素的存放位置,即當(dāng)前的中間項(xiàng)位置指針;否則返回查找失敗標(biāo)志。85查找23的過程如下圖:9元素()/2不進(jìn)位取整(08,14,23,37,46,55,68,79,91)(08,14,23,37,46,55,68,79,91)lowhighmid(08,14,23,37,46,55,68,79,91)lowhigh=mid-1mid(08,14,23,37,46,55,68,79,91)low=mid+1highmid折半查找(二分法查找)算法(重點(diǎn))86基本數(shù)據(jù)結(jié)構(gòu)與算法

排序的功能:將一個(gè)數(shù)據(jù)元素(或記錄)的任意序列,重新排成一個(gè)按關(guān)鍵字有序的序列。排序過程的組成步驟

1、首先比較兩個(gè)關(guān)鍵字的大??;

2、然后將記錄從一個(gè)位置移動(dòng)到另一個(gè)位置。1.3.7查找和排序堆排序起泡排序排序方法插入排序選擇排序交換排序歸并排序直接、折半插入排序希爾排序簡(jiǎn)單選擇排序快速排序(重點(diǎn))87基本數(shù)據(jù)結(jié)構(gòu)與算法

交換排序的特點(diǎn)在于交換,有冒泡和快速排序兩種。冒泡排序(起泡排序)思想:小的浮起,大的沉底。從左端開始比較。第一趟:第1個(gè)與第2個(gè)比較,大則交換;第2個(gè)與第3個(gè)比較,大則交換,…關(guān)鍵字最大的記錄交換到最后一個(gè)位置上;則第一趟需比較交換的元素對(duì)有1組第二趟:對(duì)前1個(gè)記錄進(jìn)行同樣的操作,關(guān)鍵字次大的記錄交換到第1個(gè)位置上;依次類推,則完成排序。1.3.7交換排序(重點(diǎn))88基本數(shù)據(jù)結(jié)構(gòu)與算法各種排序法比較(重點(diǎn))89基本數(shù)據(jù)結(jié)構(gòu)與算法1、假設(shè)線性表的長(zhǎng)度為n,則在最壞情況下,冒泡排序需要的比較次數(shù)為()

A)2n B)n2C)O(n1..5) D)n(1)/22、最簡(jiǎn)單的交換排序方法是()

A)快速排序B)選擇排序C)堆排序D)冒泡排序3、對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞的情況下所需要的比較次數(shù)為()A)1B)nC)(1)/2D)2

過關(guān)練習(xí)DDB90基本數(shù)據(jù)結(jié)構(gòu)與算法4、下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()

A)順序存儲(chǔ)的有序線性表B)線性鏈表

C)二叉鏈表 D)有序線性鏈表5、在對(duì)n個(gè)元素進(jìn)行冒泡排序的過程中,第一趟至多需要進(jìn)行()對(duì)相鄰元素之間的比較。

A)2 B)1C)n D)1過關(guān)練習(xí)AB91基本數(shù)據(jù)結(jié)構(gòu)與算法6、排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見的排序方法有插入排序、()和選擇排序等。7、在長(zhǎng)度為n的有序線性表中進(jìn)行二分查找。最壞的情況下,需要的比較次數(shù)為()。8、二分查找法的存儲(chǔ)結(jié)構(gòu)僅限于(),且是有序的。9、在插入排序和選擇排序中,若原始記錄基本正序,則選擇(),若原始記錄基本反序,則選擇()。過關(guān)練習(xí)交換排序2n順序存儲(chǔ)結(jié)構(gòu)插入排序選擇排序92基本數(shù)據(jù)結(jié)構(gòu)與算法練習(xí)參考答案1~5、

6、交換排序

7、2n8、順序存儲(chǔ)結(jié)構(gòu)

9、插入排序、選擇排序93基本數(shù)據(jù)結(jié)構(gòu)與算法1.3.8圖圖的基本概念圖:節(jié)點(diǎn)(圖中稱頂點(diǎn))間的連接是任意的。圖的分類:有向圖、無向圖n個(gè)頂點(diǎn)的連通圖中邊的條數(shù)至少為n條.(重點(diǎn))94基本數(shù)據(jù)結(jié)構(gòu)與算法算法的四個(gè)基本特征(可行性、確定性、有窮性、有足夠情報(bào))算法的復(fù)雜度(時(shí)間復(fù)雜度、空間復(fù)雜度),衡量的標(biāo)準(zhǔn)是什么?數(shù)據(jù)結(jié)構(gòu)研究的三個(gè)方面(數(shù)據(jù)邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)、基本運(yùn)算)數(shù)據(jù)結(jié)構(gòu)邏輯分類(線性、非線性)、存儲(chǔ)結(jié)構(gòu)分類(順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ))線性結(jié)構(gòu):棧、隊(duì)列、循環(huán)隊(duì)列的基本結(jié)構(gòu),操作方式,特點(diǎn)鏈?zhǔn)酱鎯?chǔ):?jiǎn)捂?、雙向鏈、循環(huán)鏈表的結(jié)構(gòu),基本操作二叉樹:定義,滿二叉樹與完全二叉樹的定義與對(duì)比二叉樹的三種遍歷算法:先序、中序、后序查找技術(shù):二分查找法的基本運(yùn)算過程,時(shí)間復(fù)雜度多少?排序技術(shù):交換、插入排序的基本算法,時(shí)間復(fù)雜度多少?本章重難點(diǎn)分析95基本數(shù)據(jù)結(jié)構(gòu)與算法謝謝大家96軟件設(shè)計(jì)及軟件工程基礎(chǔ)本部分主要內(nèi)容程序設(shè)計(jì)方法和風(fēng)格結(jié)構(gòu)化程序設(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)軟件工程基本概念結(jié)構(gòu)化分析方法軟件測(cè)試程序的調(diào)試過關(guān)練習(xí)97軟件設(shè)計(jì)及軟件工程基礎(chǔ)什么是程序指令的集合。(解釋指令)通過硬件控制系統(tǒng)自動(dòng)完成某一功能。通過一系列代碼實(shí)現(xiàn)。程序設(shè)計(jì)的風(fēng)格總體而言,應(yīng)該強(qiáng)調(diào)簡(jiǎn)單和清晰,程序必須是可以理解的。著名的“清晰第一,效率第二”的論點(diǎn)成為當(dāng)今主導(dǎo)的程序設(shè)計(jì)風(fēng)格2.1程序設(shè)計(jì)方法和風(fēng)格98軟件設(shè)計(jì)及軟件工程基礎(chǔ)程序設(shè)計(jì)風(fēng)格編寫程序時(shí)所表現(xiàn)出來的特點(diǎn)、習(xí)慣和邏輯思路。一般從以下四部分加以規(guī)范:源程序文檔化:選擇有含義的符號(hào)名字、注釋(序言性和功能性注釋)、程序的視覺組織。數(shù)據(jù)說明:顯式地說明一切變量、數(shù)據(jù)說明的次序應(yīng)該規(guī)范化、便于查找變量(按順序排列)、對(duì)復(fù)雜數(shù)據(jù)結(jié)構(gòu)應(yīng)注釋說明語句的結(jié)構(gòu):每條語句簡(jiǎn)單明了、盡量不用或少用語句、盡量只采用3種基本控制結(jié)構(gòu)編程輸入和輸出:對(duì)所有輸入數(shù)據(jù)進(jìn)行校驗(yàn)和合理性檢查、輸入輸出格式保持一致、設(shè)計(jì)良好的輸出報(bào)表2.1程序設(shè)計(jì)方法和風(fēng)格位于源程序模塊內(nèi)部一般位于模塊的首部,用于說明模塊的相關(guān)信息99軟件設(shè)計(jì)及軟件工程基礎(chǔ)基本思想結(jié)構(gòu)化程序設(shè)計(jì)的主要思想是功能分解并逐步求精。當(dāng)一些任務(wù)十分復(fù)雜不易描述時(shí),可以將它拆分為一系列較小的功能部件,直到這些子任務(wù)小到易于理解和實(shí)現(xiàn)的程度。結(jié)構(gòu)化程序的特點(diǎn):程序結(jié)構(gòu)僅由順序、選擇和循環(huán)3種結(jié)構(gòu)復(fù)合而成。設(shè)計(jì)原則自頂向下逐步求精模塊化限制使用語句2.2結(jié)構(gòu)化程序設(shè)計(jì)100軟件設(shè)計(jì)及軟件工程基礎(chǔ)基本結(jié)構(gòu):順序、選擇、循環(huán)

2.2結(jié)構(gòu)化程序設(shè)計(jì)101軟件設(shè)計(jì)及軟件工程基礎(chǔ)2.3面向?qū)ο蟪绦蛟O(shè)計(jì)基本思想客觀世界中任何一個(gè)事物都可以被看成是一個(gè)對(duì)象,面向?qū)ο蠓椒ǖ谋举|(zhì)就是主張從客觀世界固有的事物出發(fā)來構(gòu)造系統(tǒng),系統(tǒng)中的對(duì)象及對(duì)象之間的關(guān)系能夠如實(shí)地反映問題域中固有的事物及其關(guān)系。面向?qū)ο蟮某绦蛟O(shè)計(jì)(,是一種把面向?qū)ο蟮乃枷霊?yīng)用于軟件開發(fā)過程中,指導(dǎo)開發(fā)活動(dòng)的系統(tǒng)方法,簡(jiǎn)稱方法,它是建立在對(duì)象概念(對(duì)象、類和繼承)基礎(chǔ)上的方法。102軟件設(shè)計(jì)及軟件工程基礎(chǔ)主要優(yōu)點(diǎn)與人類習(xí)慣的思維方法一致穩(wěn)定性好可重用性好易于開發(fā)大型軟件產(chǎn)品可維護(hù)性好2.3面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)主要考慮的是提高軟件的可重用性!103軟件設(shè)計(jì)及軟件工程基礎(chǔ)2.3面向?qū)ο蟪绦蛟O(shè)計(jì)幾個(gè)術(shù)語:對(duì)象:在現(xiàn)實(shí)世界中,每個(gè)實(shí)體都是對(duì)象,例如,大學(xué)生、汽車、電視機(jī)、空調(diào)等都是現(xiàn)實(shí)世界中的對(duì)象屬性:通常是一些數(shù)據(jù),有時(shí)它也可以是另一個(gè)對(duì)象事件:是由對(duì)象識(shí)別的一個(gè)動(dòng)作,用戶可以編寫相應(yīng)代碼對(duì)此動(dòng)作進(jìn)行響應(yīng)方法:對(duì)象中的屬性只能通過該對(duì)象所提供的操作來存取或修改104軟件設(shè)計(jì)及軟件工程基礎(chǔ)2.3面向?qū)ο蟪绦蛟O(shè)計(jì)類:類是一組具有相同屬性和相同操作的對(duì)象的集合?;悾河脕砩尚骂惖念?。派生類:由已存在的類派生出來的新類,也叫子類。繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義他們。繼承分單繼承和多重繼承。單繼承指一個(gè)類只允許有一個(gè)父類,多重繼承指一個(gè)類允許有多個(gè)父類多態(tài)性是指同樣的消息被不同的對(duì)象接受時(shí)可導(dǎo)致完全不同的行動(dòng)的現(xiàn)象。105軟件設(shè)計(jì)及軟件工程基礎(chǔ)封裝()將數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)銜接在一起,構(gòu)成一個(gè)具有類類型的對(duì)象的描述。對(duì)象的內(nèi)部實(shí)現(xiàn)受保護(hù),外界不能訪問封裝簡(jiǎn)化了程序員對(duì)對(duì)象的使用2.3面向?qū)ο蟪绦蛟O(shè)計(jì)(應(yīng)該注意的概念)類()一個(gè)類定義了一組大體上相似的對(duì)象。一個(gè)類所包含的方法和數(shù)據(jù)描述一組對(duì)象的共同行為和屬性。類是在對(duì)象之上的抽象,對(duì)象是類的具體化,是類的實(shí)例106軟件設(shè)計(jì)及軟件工程基礎(chǔ)消息()對(duì)象之間進(jìn)行通信的一種數(shù)據(jù)構(gòu)造。消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息2.3面向?qū)ο蟪绦蛟O(shè)計(jì)(應(yīng)該注意的概念)對(duì)象()對(duì)象是基本的運(yùn)行時(shí)的實(shí)體,它既包括數(shù)據(jù)(屬性),也包括作用于數(shù)據(jù)的操作(行為)。一個(gè)對(duì)象把屬性和行為封裝為一個(gè)整體一個(gè)對(duì)象通??捎蓪?duì)象名、屬性和操作3部分組成107繼承()繼承是父類和子類之間共享數(shù)據(jù)的方法的機(jī)制一個(gè)子類可以繼承它的父類(或祖先類)中的屬性和操作子類中可以定義自己的屬性和操作單重繼承、多重繼承;且繼承具有傳遞性

水上交通工具陸上交通工具水陸兩用交通工具

多重繼承圖2.3面向?qū)ο蟪绦蛟O(shè)計(jì)(應(yīng)該注意的概念)108

結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是(D)

A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B)分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C)多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)

D)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是(D)

A)不限制語句的使用B)減少或取消注解行

C)程序越短越好 D)程序結(jié)構(gòu)應(yīng)有助于讀者理解√√過關(guān)練習(xí)—選擇題109

結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是(D)

A)程序的規(guī)模 B)程序的效率

C)程序設(shè)計(jì)語言的先進(jìn)性 D)程序易讀性以下不屬于對(duì)象的基本特點(diǎn)的是(C)

A)分類性B)多態(tài)性C)繼承性 D)封裝性√√過關(guān)練習(xí)—選擇題110

對(duì)建立良好的程序設(shè)計(jì)風(fēng)格,下面描述正確的是(A)

A)程序應(yīng)簡(jiǎn)單、清晰、可讀性好

B)符號(hào)名的命名只要符合語法

C)充分考慮程序的執(zhí)行效率

D)程序的注釋可有可無在結(jié)構(gòu)化程序設(shè)計(jì)思想提出之前,在程序設(shè)計(jì)中曾強(qiáng)調(diào)程序的效率,現(xiàn)在,與程序的效率相比,人們更重視程序的(C)

A)安全性 B)一致性

C)可理解性 D)合理性√√過關(guān)練習(xí)—選擇題111

下列敘述中,不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則的是(B)

A)自頂向下B)由底向上

C)模塊化 D)限制使用語句對(duì)象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,是指對(duì)數(shù)據(jù)和數(shù)據(jù)的操作進(jìn)行(C)

A)結(jié)合B)隱藏C)封裝D)抽象在面向?qū)ο蠓椒ㄖ?,一個(gè)對(duì)象請(qǐng)求另一個(gè)對(duì)象為其服務(wù)的方式是通過發(fā)送(D)A)調(diào)用語句B)命令C)口令D)消息√√√過關(guān)練習(xí)—選擇題112

信息屏蔽的概念與下述哪一種概念直接相關(guān)(B)A)軟件結(jié)構(gòu)定義B)模塊獨(dú)立性C)模塊類型劃分D)模塊偶合度下列對(duì)對(duì)象概念描述錯(cuò)誤的是(A)A)任何對(duì)象都必須有繼承性B)對(duì)象是屬性和方法的封裝體C)對(duì)象間的通訊靠消息傳遞D)操作是對(duì)象的動(dòng)態(tài)屬性√√過關(guān)練習(xí)—選擇題113面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)的不同,它的基本原理是(C)

A)模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系

B)強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念

C)使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題

D)鼓勵(lì)開發(fā)者在軟件開發(fā)的絕大部分中都用實(shí)際領(lǐng)域的概念去思考在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,類描述的是具有相似性質(zhì)的一組【1】?!敬鸢浮繉?duì)象在面向?qū)ο蠓椒ㄖ校愔g共享屬性和操作的機(jī)制稱為【2】。【答案】繼承一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【3】?!敬鸢浮靠芍赜眯浴?14面向?qū)ο蟮哪P椭?,最基本的概念是?duì)象和【4】。

【答案】:類在面向?qū)ο蟮脑O(shè)計(jì)中,用來請(qǐng)求對(duì)象執(zhí)行某一處理或回答某些信息的要求稱為【5】?!敬鸢浮浚合⒃诔绦蛟O(shè)計(jì)階段應(yīng)該采取【6】和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而用某種程序設(shè)計(jì)語言寫成程序。

【答案】:自頂向下過關(guān)練習(xí)—選擇題115【7】是一種信息隱蔽技術(shù),目的在于將對(duì)象的使用者和對(duì)象的設(shè)計(jì)者分開?!敬鸢浮浚悍庋b子程序通常分為兩類:【9】和函數(shù),前者是命令的抽象,后者是為了求值?!敬鸢浮浚哼^程源程序文檔化要求程序應(yīng)加注釋。注釋一般分為序言性注釋和【10】?!敬鸢浮浚汗δ苄宰⑨屧诿嫦?qū)ο蠓椒ǚN,信息屏蔽是通過對(duì)象的【11】性來實(shí)現(xiàn)的?!敬鸢浮浚悍庋b類是一個(gè)支持集成的抽象數(shù)據(jù)類型,而對(duì)象是類的【12】。

【答案】:實(shí)例在面向?qū)ο蠓椒ǚN,類之間共享屬性和操作的機(jī)制稱為【13】?!敬鸢浮浚豪^承116軟件的定義軟件()是計(jì)算機(jī)系統(tǒng)中與硬件()相互依存的另一部分。軟件包括三個(gè)部分:程序()、相關(guān)數(shù)據(jù)()、說明文檔()。軟件的特點(diǎn)軟件是一種邏輯實(shí)體,不是物理實(shí)體,具有抽象性。軟件沒有明顯的制造過程。軟件在使用過程中,沒有磨損、老化問題軟件依賴與硬件和環(huán)境,導(dǎo)致了移植問題軟件是復(fù)雜的,而且以后會(huì)更復(fù)雜軟件的成本相當(dāng)昂貴軟件工作牽涉到很多社會(huì)因素2.4軟件工程基本概念117軟件危機(jī)早期的軟件主要指程序,采用個(gè)體工作方式,缺少相關(guān)文檔,質(zhì)量低,維護(hù)困難,這些問題稱為“軟件危機(jī)”,軟件工程概念的出現(xiàn)源自于軟件危機(jī)。軟件工程軟件工程是指應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法來解決軟件問題的工程。其目的是提高軟件生產(chǎn)率、提高軟件質(zhì)量、降低軟件成本。2.4軟件工程基本概念118軟件工程基本目標(biāo)在給定成本、進(jìn)度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。軟件工程三要素方法:完成軟件工程項(xiàng)目的技術(shù)手段工具:支持軟件的開發(fā)、管理、文檔生成過程:支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制、管理2.4軟件工程基本概念119軟件生命周期軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。維護(hù)是持續(xù)時(shí)間最長(zhǎng),花費(fèi)代價(jià)最大的一個(gè)時(shí)期,軟件工程學(xué)的一個(gè)目的就是提高軟件的可維護(hù)性,降低維護(hù)代價(jià)。分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。1)軟件定義階段:包括制定計(jì)劃和需求分析。制定計(jì)劃:確定總目標(biāo);可行性研究;探討解決方案;制定開發(fā)計(jì)劃。需求分析:對(duì)待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)的定義。2.4軟件工程基本概念1202)軟件開發(fā)階段:軟件設(shè)計(jì):分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)部分。軟件實(shí)現(xiàn):把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼。軟件測(cè)試:在設(shè)計(jì)測(cè)試用例的基礎(chǔ)上檢驗(yàn)軟件的各個(gè)組成部分。3)軟件運(yùn)行維護(hù)階段(生命周期中花費(fèi)最多的階段):軟件投入運(yùn)行,并在使用中不斷地維護(hù),進(jìn)行必要的擴(kuò)充和刪改。2.4軟件工程基本概念121軟件生命周期6個(gè)主要活動(dòng)階段:見教材P63圖3.1可行性研究與計(jì)劃制定、需求分析屬于軟件定義階段。軟件設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件測(cè)試屬于軟件開發(fā)階段。其中軟件設(shè)計(jì)分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)部分。運(yùn)行與維護(hù)(包括軟件的使用、維護(hù)、退役)屬于軟件運(yùn)行維護(hù)階段。2.4軟件工程基本概念122需求分析用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求的過程。需求分析將創(chuàng)建所需的數(shù)據(jù)模型、功能模型和控制模型。需求分析的四步驟需求獲取、需求分析、編寫需求規(guī)格說明書和需求評(píng)審需求分析的方法結(jié)構(gòu)化分析方法、面向?qū)ο蠓治龇椒?.5結(jié)構(gòu)化分析方法123軟件設(shè)計(jì)及軟件工程基礎(chǔ)結(jié)構(gòu)化分析方法結(jié)構(gòu)化程序設(shè)計(jì)理論在軟件需求分析階段的運(yùn)用,其目的是幫助弄清用戶對(duì)軟件的需求。常用工具數(shù)據(jù)流圖()、數(shù)據(jù)字典()、判定樹、判定表開發(fā)策略自頂向下,逐層分解2.5結(jié)構(gòu)化分析方法124數(shù)據(jù)流圖():以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的過程,它反映了系統(tǒng)必須完成的邏輯功能,是結(jié)構(gòu)化分析方法中用于表示系統(tǒng)邏輯模型的一種工具。2.5結(jié)構(gòu)化分析方法加工

存儲(chǔ)文件

源、潭數(shù)據(jù)流

加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出。數(shù)據(jù)流:沿箭頭方向傳送數(shù)據(jù)的通道,旁邊標(biāo)注數(shù)據(jù)流名。存儲(chǔ)文件(數(shù)據(jù)源):表示處理過程中存放各種數(shù)據(jù)的文件。源、潭:表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體。125軟件設(shè)計(jì)及軟件工程基礎(chǔ)畫數(shù)據(jù)流圖的基本步驟(了解)自外向內(nèi),自頂向下,逐層細(xì)化,完善求精2.5結(jié)構(gòu)化分析方法數(shù)據(jù)流圖的示例

126軟件設(shè)計(jì)及軟件工程基礎(chǔ)數(shù)據(jù)字典():對(duì)所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個(gè)有組織的列表,其作用是對(duì)數(shù)據(jù)流圖中出現(xiàn)的被命名的圖形元素的確切解釋。數(shù)據(jù)字典是結(jié)構(gòu)化分析方法的核心概括地說,的作用是對(duì)中出現(xiàn)的被命名的圖形元素的確切解釋。2.5結(jié)構(gòu)化分析方法軟件需求規(guī)格說明書():需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。通過建立完整的信息描述、詳細(xì)的功能和行為描述、性能需求和設(shè)計(jì)約束的說明、合適的驗(yàn)收標(biāo)準(zhǔn),給出對(duì)目標(biāo)軟件的各種需求。127軟件設(shè)計(jì)及軟件工程基礎(chǔ)需求分析主要解決“做什么”的問題,而軟件設(shè)計(jì)主要解決“怎么做”的問題。從技術(shù)觀點(diǎn)來看,軟件設(shè)計(jì)包括軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)、過程設(shè)計(jì)。結(jié)構(gòu)設(shè)計(jì):定義軟件系統(tǒng)各主要部件之間的關(guān)系。數(shù)據(jù)設(shè)計(jì):將分析時(shí)創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義。接口設(shè)計(jì):描述軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間以及軟件與人之間如何通信。過程設(shè)計(jì):把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程性描述2.6結(jié)構(gòu)化設(shè)計(jì)方法—軟件設(shè)計(jì)的基礎(chǔ)128軟件設(shè)計(jì)及軟件工程基礎(chǔ)軟件設(shè)計(jì)基本原理:抽象、模塊化、信息隱蔽和模塊獨(dú)立性。抽象:抽象是一種思維工具,就是把事物本質(zhì)的共同特性提取出來而不考慮其他細(xì)節(jié)。模塊化:解決一個(gè)復(fù)雜問題時(shí)自頂向下逐步把軟件系統(tǒng)劃分成較小的、相對(duì)獨(dú)立但又不相互關(guān)聯(lián)的模塊的過程。信息隱蔽:模塊的實(shí)施細(xì)節(jié)對(duì)于其他模塊來說是隱蔽的。模塊獨(dú)立性:軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,和軟件系統(tǒng)中其他模塊的接口是簡(jiǎn)單的。2.6結(jié)構(gòu)化設(shè)計(jì)方法—軟件設(shè)計(jì)的基礎(chǔ)1292.6結(jié)構(gòu)化設(shè)計(jì)方法—總體設(shè)計(jì)模塊獨(dú)立性評(píng)價(jià)模塊獨(dú)立性程度是評(píng)價(jià)設(shè)計(jì)好壞的重要度量標(biāo)準(zhǔn)模塊獨(dú)立性指標(biāo):耦合性和內(nèi)聚性內(nèi)聚性:是一個(gè)模塊內(nèi)容各元素之間彼此結(jié)合緊密程度的度量?jī)?nèi)聚種類中功能內(nèi)聚最強(qiáng),偶然內(nèi)聚最弱耦合性:是模塊間相互連接的緊密程度的度量?jī)?yōu)秀的軟件設(shè)計(jì)原則,或稱模塊劃分原則是要求:高內(nèi)聚,低耦合1302.6結(jié)構(gòu)化設(shè)計(jì)方法—總體設(shè)計(jì)

典型的數(shù)據(jù)流類型分為:變換型和事務(wù)型變換型:變換型數(shù)據(jù)處理問題的工作過程大致分為三步,即取得數(shù)據(jù)、變換數(shù)據(jù)和輸出數(shù)據(jù)。變換型系統(tǒng)結(jié)構(gòu)圖由輸入、中心變換、輸出三部分組成。事務(wù)型:事務(wù)型數(shù)據(jù)處理問題的工作機(jī)理是接受一項(xiàng)事務(wù),根據(jù)事務(wù)處理的特點(diǎn)和性質(zhì),選擇分派一個(gè)適當(dāng)?shù)奶幚韱卧缓蠼o出結(jié)果。1312.7軟件測(cè)試目的、含義通過合理的設(shè)計(jì)測(cè)試用例以最少的人力和時(shí)間發(fā)現(xiàn)潛在的各種錯(cuò)誤和缺陷;為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。測(cè)試基本方法靜態(tài)測(cè)試(人工測(cè)試):評(píng)審軟件文檔或程序,包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量。不實(shí)際運(yùn)行軟件,主要通過人工進(jìn)行。動(dòng)態(tài)測(cè)試(機(jī)器測(cè)試):通過運(yùn)行軟件,來檢驗(yàn)結(jié)果的正確性。主要包括白盒測(cè)試方法和黑盒測(cè)試方法。提問:測(cè)試能否發(fā)現(xiàn)程序中的所有錯(cuò)誤?答案:不能。1322.7軟件測(cè)試—白盒測(cè)試白盒測(cè)試(結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試)將軟件看成透明的白盒,根據(jù)程序的內(nèi)部結(jié)構(gòu)和邏輯結(jié)構(gòu)來設(shè)計(jì)測(cè)試?yán)?,?duì)程序的路徑和過程進(jìn)行測(cè)試,檢查是否滿足設(shè)計(jì)的要求白盒測(cè)試基本原則(選擇題)保證所測(cè)模塊中每一獨(dú)立路徑至少執(zhí)行一次;保證所測(cè)模塊所有判斷的每一分支至少執(zhí)行一次;保證所測(cè)模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。1332.7軟件測(cè)試—白盒測(cè)試測(cè)試用例根據(jù)程序內(nèi)部邏輯設(shè)計(jì),主要用于軟件的單元測(cè)試。用例主要設(shè)計(jì)方法有邏輯覆蓋:指一系列以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試用例設(shè)計(jì)技術(shù)?;韭窂綔y(cè)試:根據(jù)軟件過程性描述中的控制流程確定程序的環(huán)路復(fù)雜性度量,用此度量定義基本路徑集合,并由此導(dǎo)出一組測(cè)試用例,對(duì)每一條獨(dú)立執(zhí)行路徑進(jìn)行測(cè)試。134軟件設(shè)計(jì)及軟件工程基礎(chǔ)2.7軟件測(cè)試—白盒測(cè)試邏輯覆蓋設(shè)計(jì)的基本內(nèi)容(利用測(cè)試用例)語句覆蓋:使得程序每一個(gè)語句至少都能被執(zhí)行一次。路徑覆蓋:使程序中所有的可能的路徑都至少經(jīng)歷一次。判定覆蓋:保證程序中每個(gè)判斷的每個(gè)取值分支(T或F)至少經(jīng)歷一次。條件覆蓋:保證程序中每個(gè)判斷的每個(gè)條件的可能取值至少執(zhí)行一次。判斷-條件覆蓋:使判斷中每個(gè)條件的所有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判斷的所有可能取值分支至少執(zhí)行一次。邏輯覆蓋強(qiáng)度依次是:語句覆蓋<路

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論