版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算機(jī)等級(jí)考試
公共基礎(chǔ)知識(shí)
計(jì)算機(jī)等級(jí)考試
公共基礎(chǔ)知識(shí)第2頁(yè)計(jì)算機(jī)二級(jí)考試公共基礎(chǔ)知識(shí)大綱
數(shù)據(jù)結(jié)構(gòu)與算法程序設(shè)計(jì)基礎(chǔ)軟件工程基礎(chǔ)數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)第2頁(yè)計(jì)算機(jī)二級(jí)考試公共基礎(chǔ)知識(shí)大綱數(shù)據(jù)結(jié)構(gòu)與算法第3頁(yè)算法⒈算法的基本概念
2.算法復(fù)雜度的概念和意義
一、基本數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)結(jié)構(gòu)⒈數(shù)據(jù)結(jié)構(gòu)的概念⒉線性表⒊棧和隊(duì)列⒋樹(shù)與二叉樹(shù)⒌查找技術(shù)⒍排序技術(shù)
對(duì)于等級(jí)考試,這個(gè)部分的考核重點(diǎn)主要在算法和數(shù)據(jù)結(jié)構(gòu)的基本概念、二叉樹(shù)(遍歷、結(jié)點(diǎn)),還有排序和查找考試中也經(jīng)常會(huì)涉及到。第3頁(yè)算法一、基本數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)結(jié)構(gòu)對(duì)于等級(jí)考試,這個(gè)第4頁(yè)算法的定義對(duì)解題方案準(zhǔn)確而完整的描述稱為算法。算法是程序設(shè)計(jì)的核心⒈算法的基本概念
算法是在有限步驟內(nèi)求解某一問(wèn)題所使用的一組定義明確的規(guī)則。通俗點(diǎn)說(shuō),就是計(jì)算機(jī)解題的過(guò)程(計(jì)算的方法)。在這個(gè)過(guò)程中,無(wú)論是形成解題思路(推理實(shí)現(xiàn)的算法)還是編寫(xiě)程序(操作實(shí)現(xiàn)的算法),都是在實(shí)施某種算法。例:n個(gè)數(shù)從大到小進(jìn)行排序。
有多種排序方法,常用的有冒泡排序、選擇排序等。第4頁(yè)算法的定義算法是程序設(shè)計(jì)的核心⒈算法的基本概念第5頁(yè)
2.
算法的基本特征一個(gè)算法應(yīng)該具有以下五個(gè)重要的特征:有窮性確定性輸入輸出可行性一個(gè)算法必須保證執(zhí)行有限步之后結(jié)束;算法的每一步驟必須有確切的定義;一個(gè)算法有0個(gè)或多個(gè)輸入,以刻畫(huà)運(yùn)算對(duì)象的初始情況,所謂0個(gè)輸入是指算法本身定除了初始條件;一個(gè)算法有一個(gè)或多個(gè)輸出,以反映對(duì)輸入數(shù)據(jù)加工后的結(jié)果。沒(méi)有輸出的算法是毫無(wú)意義的;算法原則上能夠精確地運(yùn)行,而且人們用筆和紙做有限次運(yùn)算后即可完成第5頁(yè)2.算法的基本特征有窮性一個(gè)算法必須保證執(zhí)第6頁(yè)算法與計(jì)算機(jī)程序算法____是一組邏輯步驟程序——用計(jì)算機(jī)語(yǔ)言描述的算法3.算法的表示INPUTrS=3.14*r*rPTINTS開(kāi)始輸入RS=3.14*
R*R輸出S結(jié)束問(wèn)題:輸入園的半徑,計(jì)算園的面積
一個(gè)算法的表示需要使用一些語(yǔ)言形式。傳統(tǒng)的算法-------圖形法,如“流程圖”和N-S圖目前常用的方法-------使用偽碼描述算法。第6頁(yè)算法與計(jì)算機(jī)程序3.算法的表示INPUTr第7頁(yè)冒泡排序的方法:1.掃描整個(gè)線性表,逐次對(duì)相鄰的兩個(gè)元素進(jìn)行比較,若為逆序,則交換;第一趟掃描的結(jié)果使最大的元素排到表的最后;2.除最后一個(gè)元素,對(duì)剩余的元素重復(fù)上述過(guò)程,將次大的數(shù)排到表的倒數(shù)第二個(gè)位置;3.重復(fù)上述過(guò)程;對(duì)于長(zhǎng)度為n的線性表,冒泡排序需要對(duì)表掃描n-1遍。
算法舉例:n個(gè)數(shù)排序第7頁(yè)冒泡排序的方法:算法舉例:n個(gè)數(shù)排序第8頁(yè)4.算法的兩個(gè)基本要素:基本運(yùn)算和操作算術(shù)運(yùn)算關(guān)系運(yùn)算邏輯運(yùn)算數(shù)據(jù)傳輸控制結(jié)構(gòu)
順序選擇循環(huán)一是對(duì)數(shù)據(jù)對(duì)象的運(yùn)算和操作;二是算法的控制結(jié)構(gòu)。算法基本設(shè)計(jì)方法:列舉法、歸納法、遞推、遞歸、減斗遞推技術(shù)、回溯法
第8頁(yè)4.算法的兩個(gè)基本要素:基本運(yùn)算和操作控制結(jié)構(gòu)第9頁(yè)5.
算法評(píng)價(jià)評(píng)價(jià)一個(gè)算法優(yōu)劣的主要標(biāo)準(zhǔn)是算法的執(zhí)行效率和存儲(chǔ)需求:時(shí)間復(fù)雜度:執(zhí)行這個(gè)算法所需要的計(jì)算工作量一般可以用算法在執(zhí)行過(guò)程中所需基本運(yùn)算的執(zhí)行次數(shù)來(lái)度量計(jì)算工作量空間復(fù)雜度:執(zhí)行這個(gè)算法所需要的內(nèi)存空間
算法在執(zhí)行過(guò)程中臨時(shí)占用的存儲(chǔ)空間
時(shí)間復(fù)雜度它大致等于計(jì)算機(jī)執(zhí)行一種簡(jiǎn)單操作所需的平均時(shí)間與算法中進(jìn)行簡(jiǎn)單操作的次數(shù)的乘積。
一個(gè)算法在計(jì)算機(jī)存儲(chǔ)器上所占用的存儲(chǔ)空間,包括存儲(chǔ)算法本身所占用的存儲(chǔ)空間、算法中的輸入輸出數(shù)據(jù)所占用的存儲(chǔ)空間和算法在運(yùn)行過(guò)程中臨時(shí)占用的存儲(chǔ)空間這三個(gè)部分第9頁(yè)5.算法評(píng)價(jià)第10頁(yè)一、算法對(duì)解題方案準(zhǔn)確而完整的描述稱為算法。算法不等于程序,也不等計(jì)算機(jī)方法,程序的編制不可能優(yōu)于算法的設(shè)計(jì)。算法評(píng)價(jià):
時(shí)間復(fù)雜度:執(zhí)行這個(gè)算法所需要的計(jì)算工作量空間復(fù)雜度:執(zhí)行這個(gè)算法所需要的內(nèi)存空間第10頁(yè)一、算法對(duì)解題方案準(zhǔn)確而完整的描述稱為算法。第11頁(yè)(1)在計(jì)算機(jī)中,算法是指______。
A.查詢方法B.加工方法
C.解題方案的準(zhǔn)確而完整的描述D.排序方法(2)下列敘述中正確的是A)算法的效率只與問(wèn)題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(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)(3)算法的有窮性是指A)算法程序的運(yùn)行時(shí)間是有限的B)算法程序所處理的數(shù)據(jù)量是有限的C)算法程序的長(zhǎng)度是有限的D)算法只能被有限的用戶使用(c)(B)算法習(xí)題:(A)第11頁(yè)(1)在計(jì)算機(jī)中,算法是指______。
A.第12頁(yè)(4)算法的時(shí)問(wèn)復(fù)雜度是指(2010年3月)A)算法的執(zhí)行時(shí)間B)算法所處理的數(shù)據(jù)量C)算法程序中的語(yǔ)句或指令條數(shù)D)算法在執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)(5)算法的空間復(fù)雜度是指(09年9月)A)算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間B)算法所處理的數(shù)據(jù)量C)算法程序中的語(yǔ)句或指令條數(shù)D)算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)(6)下列敘述中正確的是(06年9月)A)一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大B)一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小C)一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小D)上述三種說(shuō)法都不對(duì)(D)計(jì)算工作量(A)(D)第12頁(yè)(4)算法的時(shí)問(wèn)復(fù)雜度是指(2010年3月)(第13頁(yè)
計(jì)算機(jī)在進(jìn)行數(shù)據(jù)處理時(shí),實(shí)際需要處理的數(shù)據(jù)元素一般有很多,而這些大量的數(shù)據(jù)元素都需要存放在計(jì)算機(jī)中,因此,大量的數(shù)據(jù)元素在計(jì)算機(jī)中如何組織,以便提高數(shù)據(jù)處理的效率,并且節(jié)省計(jì)算機(jī)的存儲(chǔ)空間,這是進(jìn)行數(shù)據(jù)處理的關(guān)鍵問(wèn)題。二、數(shù)據(jù)結(jié)構(gòu)程序=算法+數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合。
一般來(lái)說(shuō),人們不會(huì)同時(shí)處理特征完全不同且互相之間沒(méi)有任何關(guān)系的各類數(shù)據(jù)元素,對(duì)于具有不同特征的數(shù)據(jù)元素總是分別進(jìn)行處理。一般情況下,在具有相同特征的數(shù)據(jù)元素集合中,各個(gè)數(shù)據(jù)元素之間存在有某種關(guān)系(即聯(lián)系),這種關(guān)系反映了該集合中的數(shù)據(jù)元素所固有的一種結(jié)構(gòu)。第13頁(yè)計(jì)算機(jī)在進(jìn)行數(shù)據(jù)處理時(shí),實(shí)際需要處理的數(shù)據(jù)元素一般第14頁(yè)二.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合。數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)和數(shù)據(jù)之間關(guān)系的一門(mén)學(xué)科,它包括三個(gè)方面。
(1)數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu);(2)在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系,即數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu);(3)對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算。第14頁(yè)二.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合第15頁(yè)1.邏輯結(jié)構(gòu)
數(shù)據(jù)的邏輯結(jié)構(gòu)是指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)的邏輯結(jié)構(gòu)包含:(1)表示數(shù)據(jù)元素的信息;(2)表示各數(shù)據(jù)元素之間的前后件關(guān)系。例:1.一年四季的數(shù)據(jù)結(jié)構(gòu)B=(D,R)D={春,夏,秋,冬}R={(春,夏),(夏,秋),(秋,冬)}2.家庭成員的數(shù)據(jù)結(jié)構(gòu)B=(D,R)D={父親,兒子,女兒}R={(父親,兒子),(父親,女兒)}春夏秋冬數(shù)據(jù)結(jié)構(gòu)的圖形表示父親兒子女兒第15頁(yè)1.邏輯結(jié)構(gòu)春夏秋冬數(shù)據(jù)結(jié)構(gòu)的圖形表示父親第16頁(yè)常見(jiàn)的邏輯結(jié)構(gòu)有:線性結(jié)構(gòu)、樹(shù)形結(jié)構(gòu)和圖形結(jié)構(gòu)。線性結(jié)構(gòu)樹(shù)形結(jié)構(gòu)圖形結(jié)構(gòu)①線性結(jié)構(gòu)結(jié)構(gòu)中的每個(gè)元素之間存在一個(gè)對(duì)一個(gè)的關(guān)系;②樹(shù)形結(jié)構(gòu)結(jié)構(gòu)中的每個(gè)元素之間存在一個(gè)對(duì)多個(gè)的關(guān)系;③圖形結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)結(jié)構(gòu)中的每個(gè)元素之間存在多個(gè)對(duì)多個(gè)的關(guān)系。其中,樹(shù)形結(jié)構(gòu)和圖形結(jié)構(gòu)統(tǒng)稱為非線形結(jié)構(gòu)。數(shù)據(jù)的邏輯結(jié)構(gòu)可以用二元關(guān)系表示,也可以直觀地用圖形來(lái)表示。第16頁(yè)常見(jiàn)的邏輯結(jié)構(gòu)有:線性結(jié)構(gòu)樹(shù)形結(jié)構(gòu)圖形結(jié)構(gòu)①線性第17頁(yè)2.存儲(chǔ)結(jié)構(gòu)(物理結(jié)構(gòu))計(jì)算機(jī)在實(shí)際進(jìn)行數(shù)據(jù)處理時(shí),被處理的各數(shù)據(jù)元素總是被存放在計(jì)算機(jī)的存儲(chǔ)空間中,并且,各數(shù)據(jù)元素在計(jì)算機(jī)存儲(chǔ)空間中的位置與它們的邏輯關(guān)系不一定是相同的,而且一般也不可能相同。如:一年四季
家庭成員計(jì)算機(jī)存儲(chǔ)空間怎樣存放?
存儲(chǔ)結(jié)構(gòu)指數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的具體實(shí)現(xiàn)。常見(jiàn)的存儲(chǔ)結(jié)構(gòu)有:順序存儲(chǔ)結(jié)構(gòu)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)索引存儲(chǔ)結(jié)構(gòu)只抽象地反映數(shù)據(jù)元素之間的關(guān)系的結(jié)構(gòu),而不管其存儲(chǔ)方式的數(shù)據(jù)結(jié)構(gòu)稱為邏輯結(jié)構(gòu)。一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要表示成一種或多種存儲(chǔ)結(jié)構(gòu)。第17頁(yè)2.存儲(chǔ)結(jié)構(gòu)(物理結(jié)構(gòu))只抽象地反映數(shù)據(jù)元素之間第18頁(yè)3.數(shù)據(jù)的運(yùn)算檢索插入刪除更新排序
通常,一個(gè)數(shù)據(jù)結(jié)構(gòu)中的元素結(jié)點(diǎn)可能是動(dòng)態(tài)變化的。根據(jù)需要或在處理過(guò)程中,可以在一個(gè)數(shù)據(jù)結(jié)構(gòu)中增加一個(gè)新結(jié)點(diǎn)(插入運(yùn)算),也可以刪除某個(gè)結(jié)點(diǎn)(刪除運(yùn)算),除此之外,對(duì)數(shù)據(jù)結(jié)構(gòu)的運(yùn)算還有查找、分類、合并、分解、復(fù)制和修改。在對(duì)數(shù)據(jù)結(jié)構(gòu)的處理過(guò)程中,不僅數(shù)據(jù)結(jié)構(gòu)中結(jié)點(diǎn)的個(gè)數(shù)在動(dòng)態(tài)變化,而且,各數(shù)據(jù)元素之間的關(guān)系也有可能在動(dòng)態(tài)地變化。如:無(wú)序表變有序表數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)和數(shù)據(jù)之間關(guān)系的一門(mén)學(xué)科,研究以下三方面內(nèi)容:
數(shù)據(jù)的邏輯結(jié)構(gòu)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)的運(yùn)算第18頁(yè)3.數(shù)據(jù)的運(yùn)算通常,一個(gè)數(shù)據(jù)結(jié)構(gòu)中的元素第19頁(yè)常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)
1.線性表2.棧和隊(duì)列3.樹(shù)第19頁(yè)常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)第20頁(yè)1.線性表(LinearList)線性表是由n(n≥0)個(gè)數(shù)據(jù)元素a1,a2,…,ai,…,an組成的一個(gè)有限序列。簡(jiǎn)單的線性表春夏秋冬復(fù)雜的線性表記錄102011001張三男…記錄202011003李四女…記錄3記錄4第20頁(yè)1.線性表(LinearList)線性第21頁(yè)線性表的順序存儲(chǔ)結(jié)構(gòu)
順序存儲(chǔ)結(jié)構(gòu)把邏輯上相鄰的數(shù)據(jù)元素存儲(chǔ)在物理上相鄰的存儲(chǔ)單元里,順序存儲(chǔ)結(jié)構(gòu)只存儲(chǔ)結(jié)點(diǎn)的值,不存儲(chǔ)結(jié)點(diǎn)間的關(guān)系,結(jié)點(diǎn)間的關(guān)系由存儲(chǔ)單元的鄰接關(guān)系來(lái)體現(xiàn)?!璦1a2…ai…an…存儲(chǔ)地址200020042000+4*(i-1)2000+4*(n-1)……占4個(gè)字節(jié)Loa(ai)=Loa(a1)+L*(i-1)第i個(gè)數(shù)的地址第一個(gè)數(shù)的地址L為該類型數(shù)所占的字節(jié)線性表的存儲(chǔ)結(jié)構(gòu)線性表的存儲(chǔ)結(jié)構(gòu)有兩種:
順序存儲(chǔ)結(jié)構(gòu)
鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)第21頁(yè)線性表的順序存儲(chǔ)結(jié)構(gòu)順序存儲(chǔ)結(jié)構(gòu)把邏第22頁(yè)順序表的插入運(yùn)算順序表的刪除運(yùn)算順序表的插入和刪除運(yùn)算在線性表順序存儲(chǔ)情況下,要插入或刪除一個(gè)元素,都會(huì)由于數(shù)據(jù)元素的移動(dòng)而消耗大量的處理時(shí)間,所以這種存儲(chǔ)方式對(duì)于小線性表或其中數(shù)據(jù)元素不經(jīng)常變動(dòng)的線性表是合適的。線性表的順序存儲(chǔ)結(jié)構(gòu)稱為順序表。第22頁(yè)順序表的插入運(yùn)算順序表的插入和刪除運(yùn)算第23頁(yè)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)稱為線性鏈表。鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不要求邏輯上相鄰的數(shù)據(jù)元素物理位置也相鄰,而且各數(shù)據(jù)元素的存儲(chǔ)順序也是任意的。各數(shù)據(jù)元素的先后關(guān)系是由各結(jié)點(diǎn)的指針域指示。鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的每一個(gè)存儲(chǔ)結(jié)點(diǎn)不僅存儲(chǔ)結(jié)點(diǎn)的值,而且存儲(chǔ)結(jié)點(diǎn)之間的關(guān)系:數(shù)據(jù)域指針域第23頁(yè)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)稱為線性鏈第24頁(yè)應(yīng)用舉例——線性鏈表的存儲(chǔ)結(jié)構(gòu)設(shè)線性表為(a1,a2,a3,a4,a5)1a2923a1145a4106789a3510a50HEAD3a1a2a5a3a4HEAD319510線性鏈表的邏輯狀態(tài)線性鏈表的物理狀態(tài)1a12a23a34a45a567線性表的順序存儲(chǔ)結(jié)構(gòu)注意:123此類編號(hào)不代表所在的地址單元的地址編碼第24頁(yè)應(yīng)用舉例——線性鏈表的存儲(chǔ)結(jié)構(gòu)設(shè)線性表為(a1,a2第25頁(yè)單鏈表的插入運(yùn)算單鏈表的刪除運(yùn)算線性鏈表的插入和刪除運(yùn)算采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),存儲(chǔ)空間開(kāi)銷較大,但是進(jìn)行插入和刪除運(yùn)算不會(huì)造成大量元素的移動(dòng)。循環(huán)鏈表是加一種形式的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。它的特點(diǎn)是表中最后一個(gè)結(jié)點(diǎn)的指針域指向頭結(jié)點(diǎn)。
a1a2a5a3a4HEAD319510第25頁(yè)單鏈表的插入運(yùn)算線性鏈表的插入和刪除運(yùn)算采用鏈?zhǔn)酱娴?6頁(yè)雙向鏈表的存儲(chǔ)結(jié)構(gòu)
提問(wèn):?jiǎn)蜗蜴湵淼娜秉c(diǎn)是什么?提示:如何尋找結(jié)點(diǎn)的直接前趨。
雙向鏈表可以克服單鏈表的單向性的缺點(diǎn)。
在雙向鏈表的結(jié)點(diǎn)中有兩個(gè)指針域,其一指向直接后繼,另一指向直接前趨。HEAD31510a2a3a4a1雙向循環(huán)鏈表
第26頁(yè)雙向鏈表的存儲(chǔ)結(jié)構(gòu)提問(wèn):?jiǎn)蜗蜴湵淼娜秉c(diǎn)是什么?H第27頁(yè)線性表的存儲(chǔ)結(jié)構(gòu)有兩種
順序存儲(chǔ)結(jié)構(gòu)注意:數(shù)據(jù)元素在計(jì)算機(jī)存儲(chǔ)空間中的位置關(guān)系與它們的邏輯關(guān)系不一定是相同的。一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且不同的存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率。1a2923a1145a4106789a3510a50HEAD31a12a23a34a45a567鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)線性表:{a1,a2,a3,a4,a5}第27頁(yè)線性表的存儲(chǔ)結(jié)構(gòu)有兩種順序存儲(chǔ)結(jié)構(gòu)注意:1a292第28頁(yè)2.棧和隊(duì)列棧和隊(duì)列都是特殊的線性表。
棧(Stack)及其基本運(yùn)算
隊(duì)列(Queue)及其基本運(yùn)算
循環(huán)隊(duì)列及其基本運(yùn)算第28頁(yè)2.棧和隊(duì)列棧和隊(duì)列都是特殊的線性表。第29頁(yè)棧(Stack)是一種特殊的線性表。其特點(diǎn)是插入和刪除運(yùn)算都只能在線性表的一端進(jìn)行。棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的線性表。棧的物理存儲(chǔ)結(jié)構(gòu)可以用順序結(jié)構(gòu),也可以用鏈表結(jié)構(gòu)。下面討論順序存儲(chǔ)結(jié)構(gòu)中棧元素的插入和刪除運(yùn)算。順序棧的進(jìn)棧和出棧運(yùn)算棧的基本運(yùn)算有三種:入棧、退棧和讀棧頂元素在順序棧中插入和刪除運(yùn)算不需要移動(dòng)表中其他數(shù)據(jù)元素。第29頁(yè)棧(Stack)是一種特殊的線性表。其特點(diǎn)是插入和刪第30頁(yè)隊(duì)列(Queue)是一種特殊的線性表。其特點(diǎn)是所有的插入都在表的一端進(jìn)行,所有的刪除運(yùn)算都在表的另一端進(jìn)行。隊(duì)列是按照“先進(jìn)先出”或“后進(jìn)后出”的原則組織數(shù)據(jù)的線性表。隊(duì)列的物理存儲(chǔ)結(jié)構(gòu)可以用順序結(jié)構(gòu),也可以用鏈?zhǔn)浇Y(jié)構(gòu)。順序隊(duì)列的運(yùn)算棧有三種操作:入棧\出棧\讀棧頂元素隊(duì)列有三種操作:入隊(duì)\出隊(duì)\讀隊(duì)首元素例:有入棧元素序列:ABCD,求可能的出棧序列.如是隊(duì)列又是什么情況呢?第30頁(yè)隊(duì)列(Queue)是一種特殊的線性表。其特點(diǎn)是所有的第31頁(yè)循環(huán)隊(duì)列把隊(duì)列的存儲(chǔ)空間在邏輯上看作一個(gè)環(huán),當(dāng)R指向存儲(chǔ)空間的末端后,就把它重新置于始端。循環(huán)隊(duì)列的運(yùn)算隊(duì)列中進(jìn)行插入的一端稱做隊(duì)尾(rear),進(jìn)行刪除的一端稱做隊(duì)首(front)。
習(xí)題:數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于【】結(jié)構(gòu)。(2005年9月)答案:存儲(chǔ)結(jié)構(gòu)。第31頁(yè)循環(huán)隊(duì)列隊(duì)列中進(jìn)行插入的一端稱做隊(duì)尾(rear第32頁(yè)常見(jiàn)數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)線性表
線性結(jié)構(gòu)棧
是特殊的線性表
隊(duì)列
也是一種操作受限的特殊的線性表樹(shù)(樹(shù)型結(jié)構(gòu))是一種重要的非線形數(shù)據(jù)結(jié)構(gòu)第32頁(yè)常見(jiàn)數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)線性表線性第33頁(yè)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)方面的考題
1:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指(2005年4月)A)存儲(chǔ)在外存中的數(shù)據(jù)B)數(shù)據(jù)所占的存儲(chǔ)空間量C)數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式D)數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示2.下列敘述中正確的是(2009年3月)A)棧是“先進(jìn)先出”的線性表
B)隊(duì)列是“先進(jìn)后出”的線性表
C)循環(huán)隊(duì)列是非線性結(jié)構(gòu)D)有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)3.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于[]。4.下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是A)循環(huán)隊(duì)列B)帶鏈隊(duì)列C)二叉樹(shù)D)帶鏈棧答案:D。答案:D。答案:線性結(jié)構(gòu)。答案:c第33頁(yè)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)方面的考題1:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指第34頁(yè)5。下列敘述中正確的是()。(2008年9月)
A)順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的B)順序存儲(chǔ)結(jié)構(gòu)只針對(duì)線性結(jié)構(gòu),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)只針對(duì)非線性結(jié)構(gòu)C)順序存儲(chǔ)結(jié)構(gòu)能存儲(chǔ)有序表,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不能存儲(chǔ)有序表D)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)比順序存儲(chǔ)結(jié)構(gòu)節(jié)省存儲(chǔ)空間答案:A。6。下列關(guān)于棧的敘述正確的是(2008年4月)
A)棧按“先進(jìn)先出”組織數(shù)據(jù)B)棧按“先進(jìn)后出”組織數(shù)據(jù)
C)只能在棧底插入數(shù)據(jù)D)不能刪除數(shù)據(jù)
答案:B。7.一個(gè)隊(duì)列的初始狀態(tài)為空?,F(xiàn)將元素A,B,C,D,E,F(xiàn),5,4,3,2,1依次入隊(duì),然后再依次退隊(duì),則元素退隊(duì)的順序?yàn)椤?】。(2010年3月)
答案:A,B,C,D,E,F(xiàn),5,4,3,2,1第34頁(yè)5。下列敘述中正確的是()。(2008年9月)第35頁(yè)9.設(shè)某循環(huán)隊(duì)列的容量為50,如果頭指針front=45(指向隊(duì)頭元素的前一位置),尾指針rear=10(指向隊(duì)尾元素),則該循環(huán)隊(duì)列中共有【2】個(gè)元素。
(2010年3月)
8。假設(shè)用一個(gè)長(zhǎng)度為50的數(shù)組(數(shù)組元索的下標(biāo)從0到49)作為棧的存儲(chǔ)空間,棧底指針bottom指間棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30(數(shù)組下標(biāo)),則棧中具有【】個(gè)元素。(2009年3月)
答案:19答案:15第35頁(yè)9.設(shè)某循環(huán)隊(duì)列的容量為50,如果頭指針front第36頁(yè)一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)若滿足下面的兩個(gè)條件,則這種數(shù)據(jù)結(jié)構(gòu)即為線性結(jié)構(gòu)。①有且僅有一個(gè)根結(jié)點(diǎn);②除第一個(gè)結(jié)點(diǎn)外,每一個(gè)結(jié)點(diǎn)最多有一個(gè)直接前驅(qū)結(jié)點(diǎn);③除最后一個(gè)結(jié)點(diǎn)外,每一個(gè)結(jié)點(diǎn)最多有一個(gè)直接后繼結(jié)點(diǎn)。
線性結(jié)構(gòu)與非線性結(jié)構(gòu)線性表、棧和隊(duì)列都是線性結(jié)構(gòu)
一個(gè)數(shù)據(jù)結(jié)構(gòu)不是線性結(jié)構(gòu),則稱其為非線性結(jié)構(gòu)。a1a2a5a3a4HEAD319510線性鏈表的邏輯狀態(tài)第36頁(yè)一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)若滿足下面的兩個(gè)條件,則這種數(shù)據(jù)結(jié)第37頁(yè)樹(shù)型結(jié)構(gòu)是一種重要的非線性結(jié)構(gòu)。
樹(shù)的概念
二叉樹(shù)的概念
二叉樹(shù)的存儲(chǔ)
二叉樹(shù)的遍歷3.樹(shù)與二叉樹(shù)第37頁(yè)樹(shù)型結(jié)構(gòu)是一種重要的非線性結(jié)構(gòu)。3.樹(shù)與二叉樹(shù)第38頁(yè)樹(shù)的概念
樹(shù)的定義:n個(gè)結(jié)點(diǎn)的有限集。(n>=0)
ABDFECGHIJKM根:onlyone若n=0,則稱為空樹(shù);否則,當(dāng)n>1時(shí),其余結(jié)點(diǎn)被分成m(m>0)個(gè)互不相交的子集T1,T2,...,Tm,每個(gè)子集又是一棵樹(shù)。由此可以看出,樹(shù)的定義是遞歸的。Question:如何辨別根?A只有一個(gè)結(jié)點(diǎn)的樹(shù)第38頁(yè)樹(shù)的概念樹(shù)的定義:n個(gè)結(jié)點(diǎn)的有限集。(n>=0)第39頁(yè)樹(shù)型結(jié)構(gòu)的常用術(shù)語(yǔ)ABDFECGHIJKM
結(jié)點(diǎn)的度一個(gè)結(jié)點(diǎn)的子樹(shù)的個(gè)數(shù);Q:結(jié)點(diǎn)A、G的度數(shù)?
樹(shù)的度樹(shù)中所有結(jié)點(diǎn)度的最大值;Q:右圖中樹(shù)的度?
終端結(jié)點(diǎn)度為0的結(jié)點(diǎn);Q:圖中葉子結(jié)點(diǎn)有幾個(gè)?7
非終端結(jié)點(diǎn)
度不為0的結(jié)點(diǎn);Q:圖中非終端結(jié)點(diǎn)有幾個(gè)?5孩子結(jié)點(diǎn)、雙親結(jié)點(diǎn)、兄弟結(jié)點(diǎn)、結(jié)點(diǎn)的子孫、結(jié)點(diǎn)的祖先第39頁(yè)樹(shù)型結(jié)構(gòu)的常用術(shù)語(yǔ)ABDFECGHIJKM結(jié)點(diǎn)的度第40頁(yè)樹(shù)型結(jié)構(gòu)的常用術(shù)語(yǔ)ABDFECGHIJKM
結(jié)點(diǎn)的層次樹(shù)中根結(jié)點(diǎn)的層次為1,根結(jié)點(diǎn)子樹(shù)的根為第2層,以此類推;Q:圖中結(jié)點(diǎn)F的層次?
樹(shù)的深度
樹(shù)中所有結(jié)點(diǎn)層次的最大值;
Q:圖中樹(shù)的深度?
有序樹(shù)、無(wú)序樹(shù)如果樹(shù)中每棵子樹(shù)從左向右的排列擁有一定的順序,不得互換,則稱為有序樹(shù),否則稱為無(wú)序樹(shù)。①②③④第40頁(yè)樹(shù)型結(jié)構(gòu)的常用術(shù)語(yǔ)ABDFECGHIJKM結(jié)點(diǎn)的第41頁(yè)二叉樹(shù)的概念
定義:二叉樹(shù)是一種有序的樹(shù)形結(jié)構(gòu)。它與一般樹(shù)形結(jié)構(gòu)的區(qū)別是:每個(gè)結(jié)點(diǎn)最多有兩棵子樹(shù);子樹(shù)有左右之分,次序不能任意顛倒。
二叉樹(shù)的5種基本形態(tài)第41頁(yè)二叉樹(shù)的概念定義:二叉樹(shù)是一種有序的樹(shù)形結(jié)構(gòu)。第42頁(yè)二叉樹(shù)的性質(zhì)【性質(zhì)1】
在二叉樹(shù)的第i層上最多有2i-1個(gè)結(jié)點(diǎn)(i≥1)ABCDFEHG第42頁(yè)二叉樹(shù)的性質(zhì)【性質(zhì)1】在二叉樹(shù)的第i層上最多有2i第43頁(yè)【性質(zhì)2】深度為h的二叉樹(shù)最多有2h-1個(gè)結(jié)點(diǎn)(h≥1)滿二叉樹(shù):如果一個(gè)深度為h的二叉樹(shù)擁有2h-1個(gè)結(jié)點(diǎn),則將它稱為滿二叉樹(shù)。完全二叉樹(shù):有一棵深度為h,具有n個(gè)結(jié)點(diǎn)的二叉樹(shù),若將它與一棵同深度的滿二叉樹(shù)中的所有結(jié)點(diǎn)按從上到下,從左到右的順序分別進(jìn)行編號(hào),且該二叉樹(shù)中的每個(gè)結(jié)點(diǎn)分別與滿二叉樹(shù)中編號(hào)為1~n的結(jié)點(diǎn)位置一一對(duì)應(yīng),則稱這棵二叉樹(shù)為完全二叉樹(shù)。第43頁(yè)【性質(zhì)2】深度為h的二叉樹(shù)最多有2h-1個(gè)結(jié)點(diǎn)(h第44頁(yè)121314158910114567123滿二叉樹(shù)完全二叉樹(shù)12138910114567123完全二叉樹(shù)是滿二叉樹(shù)滿二叉樹(shù)也是完全二叉樹(shù)第44頁(yè)121314158910114567123滿二叉樹(shù)完第45頁(yè)1213891011456123非完全二叉樹(shù)深度為4的完全二叉樹(shù)84567123第45頁(yè)1213891011456123非完全二叉樹(shù)深度為4第46頁(yè)【性質(zhì)3】二叉樹(shù)上葉子結(jié)點(diǎn)數(shù)比度為2的結(jié)點(diǎn)數(shù)多1ABCDFEHG度為2的結(jié)點(diǎn)葉子結(jié)點(diǎn)第46頁(yè)【性質(zhì)3】二叉樹(shù)上葉子結(jié)點(diǎn)數(shù)比度為2的結(jié)點(diǎn)數(shù)多1AB第47頁(yè)【性質(zhì)4】具有n個(gè)結(jié)點(diǎn)的完全二叉樹(shù)的深度為
log2(n+1)其中,log2n
的結(jié)果是不大于log2n的最大整數(shù)121314158910114567123深度為4的滿二叉樹(shù)深度為4的完全二叉樹(shù)84567123深度為3的完全二叉樹(shù)具有4~7深度為4的完全二叉樹(shù)具有8~15深度為5的完全二叉樹(shù)具有15~31log2(8+1)=ln9/In2=4log2(15+1)=In16/In2=4深度為6的完全二叉樹(shù)具有32~63深度為7的完全二叉樹(shù)具有64~127深度為8的完全二叉樹(shù)具有128~255深度為9的完全二叉樹(shù)具有256~511深度為10的完全二叉樹(shù)具有512~1023深度為11的完全二叉樹(shù)具有1024~2047第47頁(yè)【性質(zhì)4】具有n個(gè)結(jié)點(diǎn)的完全二叉樹(shù)的深度為lo第48頁(yè)1:在深度為7的滿二叉樹(shù)中,葉子結(jié)點(diǎn)的個(gè)數(shù)為(2006年4月)
A)32
B)31
C)64
D)632:在深度為7的滿二叉樹(shù)中,度為2的結(jié)點(diǎn)個(gè)數(shù)為【】。(07年4月)3:一棵二叉樹(shù)中共有70個(gè)葉子結(jié)點(diǎn)與80個(gè)度為1的結(jié)點(diǎn),則該二叉樹(shù)中的總結(jié)點(diǎn)數(shù)為(07年9月)A)219B)221C)229D)2314:某二叉樹(shù)中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。(2005年4月)5:一棵二叉樹(shù)第六層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)數(shù)最多為【】個(gè)。(2005年9月)
樹(shù)型結(jié)構(gòu)方面的考題
1答案:C。3答案:A。5答案:32。2答案:63。4答案:19。第48頁(yè)1:在深度為7的滿二叉樹(shù)中,葉子結(jié)點(diǎn)的個(gè)數(shù)為(200第49頁(yè)二叉樹(shù)的存儲(chǔ)在計(jì)算機(jī)中,二叉樹(shù)通常采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。LlinkinfoRlink二叉樹(shù)的存儲(chǔ)結(jié)點(diǎn)的結(jié)構(gòu)ABDCFGEA∧G∧∧E∧∧F∧B∧C∧
Dt第49頁(yè)二叉樹(shù)的存儲(chǔ)在計(jì)算機(jī)中,二叉樹(shù)通常采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)第50頁(yè)二叉樹(shù)的遍歷遍歷指不重復(fù)地訪問(wèn)二叉樹(shù)中的所有結(jié)點(diǎn)。二叉樹(shù)的遍歷的次序與樹(shù)型結(jié)構(gòu)上的大多數(shù)運(yùn)算有聯(lián)系。遍歷的方式有三種(1)先(前)序遍歷(DLR)(2)中序遍歷(LDR)(3)后序遍歷(LRD)ABCDFEHG第50頁(yè)二叉樹(shù)的遍歷遍歷指不重復(fù)地訪問(wèn)二叉樹(shù)中的所有結(jié)點(diǎn)。第51頁(yè)二叉樹(shù)的遍歷遍歷指不重復(fù)地訪問(wèn)二叉樹(shù)中的所有結(jié)點(diǎn)。(1)先(前)序遍歷(DLR)若二叉樹(shù)為空,則結(jié)束遍歷操作;否則訪問(wèn)根結(jié)點(diǎn);先序遍歷左子樹(shù);先序遍歷右子樹(shù)。ABCDFEHG先序遍歷的結(jié)果:
ABECFGHD第51頁(yè)二叉樹(shù)的遍歷遍歷指不重復(fù)地訪問(wèn)二叉樹(shù)中的所有結(jié)點(diǎn)。第52頁(yè)(2)中序遍歷(LDR)若二叉樹(shù)為空,則結(jié)束遍歷操作;否則中序遍歷左子樹(shù);訪問(wèn)根結(jié)點(diǎn);中序遍歷右子樹(shù)。中序遍歷的結(jié)果:EBAFHGCD(3)后序遍歷(LRD)若二叉樹(shù)為空,則結(jié)束遍歷操作;否則后序遍歷左子樹(shù);后序遍歷右子樹(shù);訪問(wèn)根結(jié)點(diǎn)。后序遍歷的結(jié)果:E
BHGFDCAABCDFEHG第52頁(yè)(2)中序遍歷(LDR)ABCDFEHG第53頁(yè)先序序列:ABDGCEFH 中序序列:DGBAECHF 后序序列:GDBEHFCAABCFHDEG下圖所示的二叉樹(shù)經(jīng)過(guò)三種遍歷得到的順序分別為?練習(xí):根據(jù)先序遍歷序列,建立二叉樹(shù)第53頁(yè)ABCFHDEG下圖所示的二叉樹(shù)經(jīng)過(guò)三種遍歷得到的順第54頁(yè)1:設(shè)二叉樹(shù)如下:
(2010年3月)
對(duì)該二叉樹(shù)進(jìn)行后序遍歷的結(jié)果為【3】樹(shù)型結(jié)構(gòu)方面的考題
22:對(duì)如下二叉樹(shù)(2006年4月)進(jìn)行后序遍歷的結(jié)果為A)ABCDEF
B)DBEAFCC)ABDECF
D)DEBFCA
EDBGHFCA
DABCFHDGE第54頁(yè)1:設(shè)二叉樹(shù)如下:
(2010年3月)
第55頁(yè)⒌查找技術(shù)查找是數(shù)據(jù)處理的重要內(nèi)容。查找指在一個(gè)給定的數(shù)據(jù)結(jié)構(gòu)中查找指定的元素,該元素也稱關(guān)鍵字。若找到了滿足條件的結(jié)點(diǎn),稱查找成功;否則稱查找失敗。衡量一個(gè)查找算法的主要標(biāo)準(zhǔn)是查找過(guò)程中對(duì)關(guān)鍵字進(jìn)行的平均比較次數(shù)。通常根據(jù)不同的數(shù)據(jù)結(jié)構(gòu),采用不同的查找方法:
順序查找
二分查找第55頁(yè)⒌查找技術(shù)查找是數(shù)據(jù)處理的重要內(nèi)容。第56頁(yè)順序查找線性表中最簡(jiǎn)單的查找方法。
方法:從線性表的第一個(gè)元素開(kāi)始,依次將線性表中的元素與關(guān)鍵字進(jìn)行比較,若相等,則查找成功;若將所有元素都與關(guān)鍵字進(jìn)行了比較但不相等,則查找失敗。順序查找法的適用場(chǎng)合:對(duì)線性表中元素的排列次序沒(méi)有要求;對(duì)線性表的存儲(chǔ)結(jié)構(gòu)沒(méi)有要求,鏈?zhǔn)浇Y(jié)構(gòu)和順序結(jié)構(gòu)均可。第56頁(yè)順序查找線性表中最簡(jiǎn)單的查找方法。第57頁(yè)二分查找(折半查找)
是一種效率較高的查找方法,但是只適合順序存儲(chǔ)的有序表。二分查找的方法:首先將關(guān)鍵字與線性表中間位置的結(jié)點(diǎn)比較,相等則查找成功;不相等則根據(jù)比較結(jié)果確定下一步查找應(yīng)在哪個(gè)子表中進(jìn)行;重復(fù)上述過(guò)程,直至查找成功或子表長(zhǎng)度為0。二分查找法的適用場(chǎng)合:線性表中的元素按關(guān)鍵字值遞增或遞減的次序排列;線性表采用順序存儲(chǔ)結(jié)構(gòu)。第57頁(yè)二分查找(折半查找)是一種效率較高的查找方法,但是第58頁(yè)練習(xí)
假設(shè)待查有序(升序)順序表中數(shù)據(jù)元素的關(guān)鍵字序列為(8,18,27,42,47,50,56,68,95,120),用折半查找方法查找關(guān)鍵字值為27的數(shù)據(jù)元素.對(duì)于長(zhǎng)度為n的有序線性表,最壞情況只需比較log2n次。
第58頁(yè)練習(xí)對(duì)于長(zhǎng)度為n的有序線性表,最壞情況只需比較log第59頁(yè)⒍排序技術(shù)
排序指將一個(gè)無(wú)序序列整理成按關(guān)鍵字值遞增或遞減排列的有序序列。排序方法中其排序?qū)ο笠话闶琼樞虼鎯?chǔ)的線性表。根據(jù)排序序列的規(guī)模以及數(shù)據(jù)處理的要求,可以采用不同的排序方法:交換類排序法
冒泡排序快速排序
插入類排序法簡(jiǎn)單插入排序希爾排序選擇類排序法簡(jiǎn)單選擇排序堆排序第59頁(yè)⒍排序技術(shù)排序指將一個(gè)無(wú)序序列整理成按關(guān)鍵字值遞第60頁(yè)冒泡排序冒泡排序的方法:掃描整個(gè)線性表,逐次對(duì)相鄰的兩個(gè)元素進(jìn)行比較,若為逆序,則交換;第一趟掃描的結(jié)果使最大(或最小)的元素排到表的最后(或最前);除最后(或最前)一個(gè)元素,對(duì)剩余的元素重復(fù)上述過(guò)程,將次大(或次小)的數(shù)排到表的倒數(shù)(或正數(shù))第二個(gè)位置;重復(fù)上述過(guò)程;對(duì)于長(zhǎng)度為n的線性表,冒泡排序需要對(duì)表掃描n-1遍。第60頁(yè)冒泡排序冒泡排序的方法:第61頁(yè)冒泡排序的方法設(shè)待排數(shù)據(jù)元素的關(guān)鍵字為(18,20,15,32,4,25),第一趟冒泡排序后的序列狀態(tài)如圖所示:
182015324251820153242518152032425181520324251815204322518152042532最大數(shù)第二趟冒泡排序第61頁(yè)冒泡排序的方法設(shè)待排數(shù)據(jù)元素的關(guān)鍵字為(18,20,第62|92頁(yè)Q:第二趟冒泡排序后的結(jié)果是什么樣的?達(dá)到了最終的排序目標(biāo)嗎?一共需要多少次能夠最后成為有序序列?Q:你覺(jué)得冒泡排序的效率如何?如果是你,你會(huì)用什么方法來(lái)排序?
冒泡排序比較簡(jiǎn)單,當(dāng)初始序列基本有序時(shí),冒泡排序有較高的效率,反之效率較低。冒泡排序終止條件:本趟排序未發(fā)生交換,終止排序算法第62|92頁(yè)Q:第二趟冒泡排序后的結(jié)果是什么樣的?達(dá)到了最第63|92頁(yè)初始第一趟第二趟第三趟第四趟第五趟序列排序后排序后排序后排序后排序后 26 18 1818 189 18 26 2626 915 32 32 329 15 18 54 47 915 26 47 9 1532
9 15 47
15 54
設(shè)待排數(shù)據(jù)元素的關(guān)鍵字為(26,18,32,54,47,9,15)冒泡排序法,需要比較的次數(shù)為n(n-1)/2;
第63|92頁(yè)初始第一趟第64頁(yè)選擇排序選擇排序的方法:掃描整個(gè)線性表,從中找出最小的元素,與第一個(gè)元素交換;除第一個(gè)元素,對(duì)剩下的子表采用相同的方法找出次小的數(shù),與第二個(gè)數(shù)交換;重復(fù)上述過(guò)程;對(duì)于長(zhǎng)度為n的線性表,選擇排序需要對(duì)表掃描n-1遍。簡(jiǎn)單選擇排序法,
最壞情況需要n(n-1)/2次比較;
第64頁(yè)選擇排序選擇排序的方法:簡(jiǎn)單選擇排序法,
最壞情況第65|92頁(yè)初態(tài):[15,14,22,30,37,15,11]第一趟:[11][14,22,30,37,15,15]第二趟:[11,14][22,30,37,15,15]第三趟:[11,14,15][30,37,22,15]第四趟:[11,14,15,15][37,22,30]第五趟:[11,14,15,15,22][37,30]第六趟:[11,14,15,15,22,30][37]
有序序列例:設(shè)待排數(shù)據(jù)元素的關(guān)鍵字為(15,14,22,30,37,11),每一趟排序后的序列狀態(tài)如圖所示:第65|92頁(yè)初態(tài):[15,14,22,30,37第66頁(yè)排序法小結(jié):簡(jiǎn)單選擇排序法,
最壞情況需要n(n-1)/2次比較;冒泡排序法,
最壞情況需要n(n-1)/2次比較;希爾排序法,
最壞情況需要O(n1.5)次比較;堆排序法,最壞情況需要O(nlog2n)次比較;
第66頁(yè)排序法小結(jié):簡(jiǎn)單選擇排序法,
最壞情況需要n(n-1第67頁(yè)排序查找方面的考題:(1)對(duì)于長(zhǎng)度為n的線性表,在最壞情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是(2005年4月)A)冒泡排序?yàn)閚/2B)冒泡排序?yàn)閚C)快速排序?yàn)閚D)快速排序?yàn)閚(n-1)/2
(2)在長(zhǎng)為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為_(kāi)_____。(06年9月)
A)、63B)、64C)、6D)、7(3)下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是(2005年9月)A)順序存儲(chǔ)的有序線性表 B)線性鏈表C)二叉鏈表 D)有序線性鏈表(4)下列排序方法中,最壞情況下比較次數(shù)最少的是(09年3月)
A)冒泡排序
B)簡(jiǎn)單選擇排序
C)直接插入排序
D)堆排序DBAD第67頁(yè)排序查找方面的考題:(1)對(duì)于長(zhǎng)度為n的線性表,在第68頁(yè)第二章程序設(shè)計(jì)基礎(chǔ)內(nèi)容:
1.程序設(shè)計(jì)方法與風(fēng)格。2.結(jié)構(gòu)化程序設(shè)計(jì)。3.面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,對(duì)象,方法,屬性及繼承與多態(tài)性。第68頁(yè)第二章程序設(shè)計(jì)基礎(chǔ)內(nèi)容:第69頁(yè)1.結(jié)構(gòu)化程序設(shè)計(jì)
結(jié)構(gòu)化程序設(shè)計(jì)方法的四條原則是:1.自頂向下;2.逐步求精;3.模塊化;4.限制使用goto語(yǔ)句。
結(jié)構(gòu)化程序的基本結(jié)構(gòu)和特點(diǎn):
(1)順序結(jié)構(gòu):簡(jiǎn)單的程序設(shè)計(jì),最基本、最常用的結(jié)構(gòu);
(2)選擇結(jié)構(gòu)(分支結(jié)構(gòu)):包括簡(jiǎn)單選擇和多分支選擇結(jié)構(gòu),
(3)重復(fù)結(jié)構(gòu)(循環(huán)結(jié)構(gòu)):可根據(jù)給定條件,判斷是否需要重復(fù)執(zhí)行某一相同程序段。第69頁(yè)1.結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)方法的四條原則是:第70頁(yè)2.面向?qū)ο蟮某绦蛟O(shè)計(jì)
對(duì)象是面向?qū)ο蠓椒ㄖ凶罨镜母拍睢?/p>
對(duì)象是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,是構(gòu)成系統(tǒng)的一個(gè)基本單位,由一組表示其靜態(tài)特征的屬性和它可執(zhí)行的一組操作組成。屬性即對(duì)象所包含的信息操作描述了對(duì)象執(zhí)行的功能,操作也稱為方法或服務(wù)。第70頁(yè)2.面向?qū)ο蟮某绦蛟O(shè)計(jì)對(duì)象是面向?qū)ο蠓椒ㄖ凶罨镜牡?1頁(yè)類是指具有共同屬性、共同方法的對(duì)象的集合。所以類是對(duì)象的抽象,對(duì)象是對(duì)應(yīng)類的一個(gè)實(shí)例。消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息。
消息的組成包括(1)接收消息的對(duì)象的名稱;(2)消息標(biāo)識(shí)符,也稱消息名;(3)零個(gè)或多個(gè)參數(shù)。繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義他們。單繼承指一個(gè)類只允許有一個(gè)父類多重繼承指一個(gè)類允許有多個(gè)父類。多態(tài)性是指同樣的消息被不同的對(duì)象接受時(shí)可導(dǎo)致完全不同的行動(dòng)的現(xiàn)象。第71頁(yè)類是指具有共同屬性、共同方法的對(duì)象的集合。第72頁(yè)程序設(shè)計(jì)基礎(chǔ)方面的考題1.符合結(jié)構(gòu)化原則的三種基本控制結(jié)構(gòu)是:選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和【】
.(2009年3月)2.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是(2009年9月)A)可封裝D)自頂向下C)模塊化D)逐步求精3.以下敘述中正確的是。(2010年3月)A)程序設(shè)計(jì)的任務(wù)就是編寫(xiě)程序代碼并上機(jī)調(diào)試B)程序設(shè)計(jì)的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)C)程序設(shè)計(jì)的任務(wù)就是確定所用算法D)以上三種說(shuō)法都不完整4.在面向?qū)ο蠓椒ㄖ校惖膶?shí)例稱為【____】。(2005年4月)5.在面向?qū)ο蠓椒ㄖ?【____】描述的是具有相似屬性與操作的一組對(duì)象。(2006年4月)(順序結(jié)構(gòu))A
D對(duì)象類第72頁(yè)程序設(shè)計(jì)基礎(chǔ)方面的考題1.符合結(jié)構(gòu)化原則的三種基本控第73頁(yè)第三章軟件工程基礎(chǔ)計(jì)算機(jī)軟件是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。軟件按功能分為應(yīng)用軟件、系統(tǒng)軟件、支撐軟件(或工具軟件)。
第73頁(yè)第三章軟件工程基礎(chǔ)計(jì)算機(jī)軟件是包括程序、數(shù)據(jù)及相關(guān)第74頁(yè)1.軟件工程概念軟件工程是應(yīng)用于計(jì)算機(jī)軟件的定義、開(kāi)發(fā)和維護(hù)的一整套方法、工具、文檔、實(shí)踐標(biāo)準(zhǔn)和工序。
軟件工程包括3個(gè)要素:方法、工具和過(guò)程。軟件周期:軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程。
軟件生命周期三個(gè)階段:軟件定義、軟件開(kāi)發(fā)、運(yùn)行維護(hù),主要活動(dòng)階段是:
(1)可行性研究與計(jì)劃制定;
(2)需求分析;
(3)軟件設(shè)計(jì);
(4)軟件實(shí)現(xiàn);
(5)軟件測(cè)試;
(6)運(yùn)行和維護(hù)。第74頁(yè)1.軟件工程概念軟件工程是應(yīng)用于計(jì)算機(jī)軟件的定義、開(kāi)第75頁(yè)2.結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法:著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。結(jié)構(gòu)化分析的常用工具(1)數(shù)據(jù)流圖;
(2)數(shù)據(jù)字典;
(3)判定樹(shù);
判定表。
(4)軟件需求規(guī)格說(shuō)明書(shū)第75頁(yè)2.結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法:著眼于數(shù)據(jù)流,自頂?shù)?6頁(yè)3.結(jié)構(gòu)化設(shè)計(jì)方法軟件設(shè)計(jì)包括:總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)在程序結(jié)構(gòu)中各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。優(yōu)秀軟件應(yīng)高內(nèi)聚,低耦合。常見(jiàn)的過(guò)程設(shè)計(jì)工具有:圖形工具(程序流程圖,N-S,PAD)表格工具(判定表)語(yǔ)言工具(PDL偽碼)第76頁(yè)3.結(jié)構(gòu)化設(shè)計(jì)方法軟件設(shè)計(jì)包括:總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)第77頁(yè)程序流程圖N-S圖PAD圖第77頁(yè)程序流程圖N-S圖PAD圖第78頁(yè)4.軟件測(cè)試軟件測(cè)試的目的:發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。
軟件測(cè)試方法:
靜態(tài)測(cè)試:
包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量。不實(shí)際運(yùn)行軟件,主要通過(guò)人工進(jìn)行。
動(dòng)態(tài)測(cè)試:
是基本計(jì)算機(jī)的測(cè)試,主要包括白盒測(cè)試方法和黑盒測(cè)試方法
軟件測(cè)試過(guò)程一般按4個(gè)步驟進(jìn)行:?jiǎn)卧獪y(cè)試、集成測(cè)試、驗(yàn)收測(cè)試(確認(rèn)測(cè)試)和系統(tǒng)測(cè)試。第78頁(yè)4.軟件測(cè)試軟件測(cè)試的目的:發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)第79頁(yè)5.程序的調(diào)試
程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤,主要在開(kāi)發(fā)階段進(jìn)行。軟件調(diào)試靜態(tài)調(diào)試主要是指通過(guò)人的思維來(lái)分析源程序代碼和排錯(cuò),是主要的設(shè)計(jì)手段。動(dòng)態(tài)調(diào)試是輔助靜態(tài)調(diào)試。主要調(diào)試方法有:
(1)強(qiáng)行排錯(cuò)法;
(2)回溯法;
(3)原因排除法。第79頁(yè)5.程序的調(diào)試程序調(diào)試的任務(wù)是診斷和改正程序中的第80頁(yè)(1)下面敘述中錯(cuò)誤的是(2009年3月)
A)軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤B)對(duì)被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟C)程序調(diào)試通常也稱為DebugD)軟件測(cè)試應(yīng)嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性(2)軟件測(cè)試可分為白盒測(cè)試和黑盒測(cè)試?;韭窂綔y(cè)試屬于【】測(cè)試。(2009年3月)(3)
按照軟件測(cè)試的一般步驟,集成測(cè)試應(yīng)在_____測(cè)試之后進(jìn)行。(4)軟件工程三要素包括方法、工具和過(guò)程,其中,_____支持軟件開(kāi)發(fā)的各個(gè)環(huán)節(jié)的控制和管理。(2008年9月)(5)軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是(2009年9月)A)低內(nèi)聚低耦合B)高內(nèi)聚低耦合C)低內(nèi)聚高耦合D)高內(nèi)聚高耦合A
軟件工程方面的考題:白盒
單元過(guò)程B第80頁(yè)(1)下面敘述中錯(cuò)誤的是(2009年3月)A第81頁(yè)(6)下列敘述中正確的是(2005年9月)AA)軟件交付使用后還需要進(jìn)行維護(hù)B)軟件一旦交付使用就不需要再進(jìn)行維護(hù)C)軟件交付使用后其生命周期就結(jié)束D)軟件維護(hù)是指修復(fù)程序中被破壞的指令(7)程序流程圖中的菱形框表示的是【2】(2009年9月)。(8)軟件開(kāi)發(fā)過(guò)程主要分為需求分析、設(shè)計(jì)、編碼與測(cè)試四個(gè)階段,其中【3】階段產(chǎn)生“軟件需求規(guī)格說(shuō)明書(shū)。(2009年9月)
(9)下列敘述中正確的是(2006年4月)
A)軟件測(cè)試應(yīng)該由程序開(kāi)發(fā)者來(lái)完成
B)程序經(jīng)調(diào)試后一般不需要再測(cè)試
C)軟件維護(hù)只包括對(duì)程序代碼的維護(hù)
D)以上三種說(shuō)法都不對(duì)A
邏輯條件需求分析D第81頁(yè)(6)下列敘述中正確的是(2005年9月)AA邏第82頁(yè)(3)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是A)編輯軟件B)操作系統(tǒng)C)教務(wù)管理系統(tǒng)D)瀏覽器(4)軟件(程序)調(diào)試的任務(wù)是A)診斷和改正程序中的錯(cuò)誤B)盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤C)發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤D)確定程序中錯(cuò)誤的性質(zhì)(5)數(shù)據(jù)流程圖(DFD圖)是A)軟件概要設(shè)計(jì)的工具B)軟件詳細(xì)設(shè)計(jì)的工具C)結(jié)構(gòu)化方法的需求分析工具D)面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ?6)軟件生命周期可分為定義階段,開(kāi)發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于A)定義階段B)開(kāi)發(fā)階段C)維護(hù)階段D)上述三個(gè)階段2010年3月計(jì)算機(jī)等級(jí)考試
BA
C
B
第82頁(yè)(3)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟第83頁(yè)數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)知識(shí)點(diǎn)得分表數(shù)據(jù)庫(kù)的基本概念數(shù)據(jù)模型關(guān)系代數(shù)數(shù)據(jù)庫(kù)設(shè)計(jì)與管理小計(jì)08年4月2分6分2分10分08年9月2分4分2分2分10分09年3月2分2分2分4分10分09年9月2分2分2分4分10分10年3月2分4分2分2分10分時(shí)間知識(shí)點(diǎn)第83頁(yè)數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)知識(shí)點(diǎn)得分表數(shù)據(jù)庫(kù)的基本概念數(shù)據(jù)關(guān)系數(shù)第84頁(yè)第四章數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)數(shù)據(jù):實(shí)際上就是描述事物的符號(hào)記錄。數(shù)據(jù)庫(kù):是數(shù)據(jù)的集合,具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個(gè)應(yīng)用程序共享。數(shù)據(jù)庫(kù)管理系統(tǒng):一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等,是數(shù)據(jù)庫(kù)的核心。數(shù)據(jù)庫(kù)系統(tǒng):由數(shù)據(jù)庫(kù)(數(shù)據(jù))、數(shù)據(jù)庫(kù)管理系統(tǒng)(軟件)、數(shù)據(jù)庫(kù)管理員(人員)、硬件平臺(tái)(硬件)、軟件平臺(tái)(軟件)五個(gè)部分構(gòu)成的運(yùn)行實(shí)體。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng):由數(shù)據(jù)庫(kù)系統(tǒng)、應(yīng)用軟件及應(yīng)用界面三者組成。第84頁(yè)第四章數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)數(shù)據(jù):實(shí)際上就是描述事物的符號(hào)第85頁(yè)數(shù)據(jù)庫(kù)系統(tǒng)第85頁(yè)數(shù)據(jù)庫(kù)系統(tǒng)86常見(jiàn)的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)小型數(shù)據(jù)庫(kù):VisualFoxPro(以后簡(jiǎn)稱為VFP)Access(office套件中的一個(gè))Paradox大型數(shù)據(jù)庫(kù):OracleInformixSYBASESQLserver等86常見(jiàn)的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)小型數(shù)據(jù)庫(kù):第87頁(yè)數(shù)據(jù)庫(kù)管理系統(tǒng)提供的數(shù)據(jù)語(yǔ)言:
(1)數(shù)據(jù)定義語(yǔ)言:負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;(2)數(shù)據(jù)操縱語(yǔ)言:
負(fù)責(zé)數(shù)據(jù)的操縱,如查詢與增、刪、改等;
(3)數(shù)據(jù)控制語(yǔ)言:負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等。數(shù)據(jù)庫(kù)管理系統(tǒng)的發(fā)展(1)文件系統(tǒng)階段:提供了簡(jiǎn)單的數(shù)據(jù)共享與數(shù)據(jù)管理能力,但是它無(wú)法提供完整的、統(tǒng)一的、管理和數(shù)據(jù)共享的能力。(2)層次數(shù)據(jù)庫(kù)與網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)階段:為統(tǒng)一與共享數(shù)據(jù)提供了有力支撐。(3)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)階段1.數(shù)據(jù)庫(kù)系統(tǒng)的基本概念第87頁(yè)數(shù)據(jù)庫(kù)管理系統(tǒng)提供的數(shù)據(jù)語(yǔ)言:
(1)數(shù)據(jù)定義語(yǔ)言:第88頁(yè)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的基本特點(diǎn):數(shù)據(jù)的集成性數(shù)據(jù)的高共享性與低冗余性數(shù)據(jù)獨(dú)立性(物理獨(dú)立性與邏輯獨(dú)立性)數(shù)據(jù)統(tǒng)一管理與控制。數(shù)據(jù)庫(kù)存放數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,具有集成與共享的特點(diǎn)。數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式:
(1)概念模式(2)外模式(3)內(nèi)模式數(shù)據(jù)庫(kù)系統(tǒng)的兩級(jí)映射:
(1)概念模式到內(nèi)模式的映射;
(2)外模式到概念模式的映射。1.數(shù)據(jù)庫(kù)系統(tǒng)的基本概念第88頁(yè)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的基本特點(diǎn):1.數(shù)據(jù)庫(kù)系統(tǒng)的基本概念89應(yīng)用外模式(用戶數(shù)據(jù)庫(kù))應(yīng)用外模式(用戶數(shù)據(jù)庫(kù))應(yīng)用外模式(用戶數(shù)據(jù)庫(kù))概念模式(概念數(shù)據(jù)庫(kù))內(nèi)模式(物理數(shù)據(jù)庫(kù))數(shù)據(jù)庫(kù)外模式→概念模式映射概念模式→內(nèi)模式映射模式89應(yīng)用外模式應(yīng)用外模式應(yīng)用外模式概念模式內(nèi)模式數(shù)據(jù)庫(kù)外模式902.數(shù)據(jù)模型數(shù)據(jù)模型(DataModel)是對(duì)客觀事物及其關(guān)系的數(shù)據(jù)描述。數(shù)據(jù)庫(kù)中的數(shù)據(jù)模型可以將復(fù)雜的現(xiàn)實(shí)世界要求反映到計(jì)算機(jī)數(shù)據(jù)庫(kù)中的物理世界?,F(xiàn)實(shí)世界信息世界計(jì)算機(jī)世界
數(shù)據(jù)模型是數(shù)據(jù)特征的抽象,從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動(dòng)態(tài)行為和約束條件。數(shù)據(jù)模型所描述的內(nèi)容包含:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束。902.數(shù)據(jù)模型數(shù)據(jù)模型(DataModel)是對(duì)客觀事第91頁(yè)2.數(shù)據(jù)模型E-R模型的基本概念
(1)實(shí)體:現(xiàn)實(shí)世界中的事物;
(2)屬性:事物的特性;
(3)聯(lián)系:現(xiàn)實(shí)世界中事物間的關(guān)系。實(shí)體集的關(guān)系有一對(duì)一、一對(duì)多、多對(duì)多的聯(lián)系。
一個(gè)班級(jí)的學(xué)生,學(xué)生與學(xué)生之間是一對(duì)一的關(guān)系。在一所學(xué)校,一門(mén)課程與學(xué)生之間是一對(duì)多的關(guān)系。在一所學(xué)校,多門(mén)課程與多個(gè)學(xué)生之間是多對(duì)多的關(guān)系。第91頁(yè)2.數(shù)據(jù)模型E-R模型的基本概念
(1)實(shí)體:現(xiàn)實(shí)92E-R模型的圖示法用簡(jiǎn)單的幾何圖形表示實(shí)體集、屬性與聯(lián)系。(1)實(shí)體集表示法在E-R圖中用矩形表表示實(shí)體集,在矩形內(nèi)寫(xiě)上實(shí)體集名稱。如實(shí)體集學(xué)生(student)、實(shí)體集課程(course)(2)屬性表示法在E-R圖中用橢圓形表示屬性,在橢圓形內(nèi)寫(xiě)上該屬性名稱。如學(xué)生有屬性:學(xué)號(hào)(S#)、姓名(Sn)及年齡(Sa)可用如下表示。studentcourseS#SnSa92E-R模型的圖示法studentcourseS#SnSa93(3)聯(lián)系表示法在E-R圖中用菱形(內(nèi)寫(xiě)上聯(lián)系名)表示聯(lián)系。如學(xué)生與課程的聯(lián)系SC,如下圖所示:(4)實(shí)體集與屬性間的聯(lián)系關(guān)系屬性依附于實(shí)體集,它們之間有聯(lián)系關(guān)系用無(wú)向線段表示。SCstudentS#SnSa93(3)聯(lián)系表示法SCstudentS#SnSa94屬性也依附于聯(lián)系,它們之間也有聯(lián)系關(guān)系,因此也可用無(wú)向線段,如聯(lián)系SC可與學(xué)生的課程成績(jī)屬性G建立聯(lián)系并用下圖表示。(5)實(shí)體集與聯(lián)系間的連接關(guān)系(也可用無(wú)向線段)SCGstudentcourseSC94屬性也依附于聯(lián)系,它們之間也有聯(lián)系關(guān)系,因此也可用無(wú)向線第95頁(yè)E-R模型之間的聯(lián)接關(guān)系:實(shí)體是概念世界中的基本單位,屬性有屬性域,每個(gè)實(shí)體可取屬性域內(nèi)的值。一個(gè)實(shí)體的所有屬性值叫元組。
E-R模型的圖示法:(1)實(shí)體集表示法;用長(zhǎng)方形(2)屬性表法;用橢圓形(3)聯(lián)系表示法。用菱形,(m:n)第95頁(yè)E-R模型之間的聯(lián)接關(guān)系:第96頁(yè)層次模型(采用樹(shù)型結(jié)構(gòu))圖1-4層次模型示例第96頁(yè)層次模型(采用樹(shù)型結(jié)構(gòu))圖1-4層次模型示例第97頁(yè)
網(wǎng)絡(luò)模型(采用無(wú)向圖型結(jié)構(gòu))第97頁(yè)
網(wǎng)絡(luò)模型(采用無(wú)向圖型結(jié)構(gòu))第98頁(yè)關(guān)系模型(采用二維表結(jié)構(gòu))第98頁(yè)關(guān)系模型(采用二維表結(jié)構(gòu))第99頁(yè)關(guān)系數(shù)據(jù)模型關(guān)系模型采用二維表來(lái)表示,簡(jiǎn)稱表,由表框架及表的元組組成。一個(gè)二維表就是一個(gè)關(guān)系。關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)之一是它建立在數(shù)據(jù)理論的基礎(chǔ)之上,有很多數(shù)據(jù)理論可以表示關(guān)系模型的數(shù)據(jù)操作,其中最為著名的是關(guān)系代數(shù)與關(guān)系演算。學(xué)號(hào)姓名性別出生日期入學(xué)成績(jī)四級(jí)通過(guò)否計(jì)算機(jī)等級(jí)考試備注04001001尚杰男86-11-20520.5T一級(jí)04001002余習(xí)芳女86-12-26513.5F二級(jí)04001057張軼一男86-01-09612.0T04002023陶紅莉女85-02-14535.0F二級(jí)第99頁(yè)關(guān)系數(shù)據(jù)模型關(guān)系模型采用二維表來(lái)表示,簡(jiǎn)稱表,由表框1001.關(guān)系的數(shù)據(jù)結(jié)構(gòu)二維表由表框架與表元組組成。表框架由n個(gè)命名的屬性組成(n稱為屬性元素)。每個(gè)屬性有一個(gè)取值范圍稱為值域。表框架對(duì)應(yīng)了關(guān)系的模式,即類型的概念。每行數(shù)據(jù)稱為元組,一個(gè)元組由n個(gè)元組分量所組成,每個(gè)元組分量是表結(jié)構(gòu)中每個(gè)屬性的投影值。學(xué)號(hào)姓名性別出生日期入學(xué)成績(jī)四級(jí)通過(guò)否計(jì)算機(jī)等級(jí)考試備注04001001尚杰男86-11-20520.5T一級(jí)04001002余習(xí)芳女86-12-26513.5F二級(jí)04001057張軼一男86-01-09612.0T04002023陶紅莉女85-02-14535.0F二級(jí)1001.關(guān)系的數(shù)據(jù)結(jié)構(gòu)學(xué)號(hào)姓名性別出生日期入學(xué)成績(jī)四級(jí)通過(guò)101一個(gè)二維表要滿足下面7個(gè)性質(zhì)就可稱為一個(gè)關(guān)系。①二維表中元組個(gè)數(shù)是有限的②二維表中元組均不相同③二維表中元組的次序可任意交換④二維表中元組的分量是不可分割的基本數(shù)據(jù)項(xiàng)⑤二維表中屬性名各不相同⑥二維表中屬性與次序無(wú)關(guān),可任意交換⑦二維表屬性中的分量具有與該屬性相同的值域二維表關(guān)系模型VFP表文件二維表框架關(guān)系模式數(shù)據(jù)表結(jié)構(gòu)行元組記錄
元組分量數(shù)據(jù)項(xiàng)列屬性字段
屬性值域字段值域惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵(或碼),在VFP表中稱為主關(guān)鍵字101一個(gè)二維表要滿足下面7個(gè)性質(zhì)就可稱為一個(gè)關(guān)系。二維表關(guān)102關(guān)系模型的基本運(yùn)算:
1.數(shù)據(jù)查詢
查詢關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù),一個(gè)關(guān)系內(nèi)的查詢以及多個(gè)關(guān)系間的查詢。
查詢的基本單位為元組分量,先定位后操作。
縱向定位(列指定)橫向定位(行選擇)2.數(shù)據(jù)插入插入一個(gè)元組(不定位)
3.數(shù)據(jù)刪除刪除一個(gè)元組(定位、操作)
4.數(shù)據(jù)修改刪除需修改的元組再插入修改后的元組關(guān)系操作102關(guān)系模型的基本運(yùn)算:關(guān)系操作103關(guān)系模型的基本運(yùn)算:
1.插入集合的并運(yùn)算
2.刪除集合的差(交)
運(yùn)算
3.修改集合的差|并(除)運(yùn)算。
4.查詢(投影、選擇、笛卡爾積運(yùn)算)3.關(guān)系代數(shù)集合的并運(yùn)算103關(guān)系模型的基本運(yùn)算:3.關(guān)系代數(shù)集合的并運(yùn)算104
由關(guān)系R和S通過(guò)交運(yùn)算得到關(guān)系T,104
由關(guān)系R和S通過(guò)交運(yùn)算得到關(guān)系T,105用于查詢的集合運(yùn)算:(1)投影對(duì)于關(guān)系R內(nèi)的域指定稱為投影運(yùn)算。S關(guān)系就是對(duì)R關(guān)系指定A和B兩個(gè)域的結(jié)果ABCa32b01c21ABa3b0c2RS3.關(guān)系代數(shù)105用于查詢的集合運(yùn)算:ABCa32b01c21ABa3b106關(guān)系代數(shù)(2)選擇選擇運(yùn)算的關(guān)系是由關(guān)系R中那些滿足邏輯條件的元組所組成。S關(guān)系就是R關(guān)系中滿足A=‘a(chǎn)’的結(jié)果ABCa32b01a69c21RSABCa32a69有了投影和選擇運(yùn)算,我們對(duì)一個(gè)關(guān)系內(nèi)的任意行、列的數(shù)據(jù)都可以方便的找到。106關(guān)系代數(shù)(2)選擇ABCa32b01a69c21RSA107笛卡爾積是對(duì)兩個(gè)關(guān)系的合并操作。有三個(gè)關(guān)系R、S和T
R關(guān)系n1行,m1列S關(guān)系n2行,m2列
T關(guān)系行數(shù)=n1*n2列數(shù)=m1+m2AmnBC13ABCm13n13RST(3)笛卡爾積運(yùn)算107笛卡爾積是對(duì)兩個(gè)關(guān)系的合并操作。AmnBC13ABCm108笛卡爾積建立兩個(gè)關(guān)系的連接,但得到的關(guān)系龐大且數(shù)據(jù)大量冗余。在實(shí)際應(yīng)用中一般相互連接的關(guān)系往往須滿足一些條件,所得到的結(jié)果也較為簡(jiǎn)單。自然連接滿足兩個(gè)關(guān)系中有公共域,通過(guò)公共域的相等值進(jìn)行連接。有三個(gè)關(guān)系R、S和T
R關(guān)系n1行,m1列S關(guān)系n2行,m2列T關(guān)系行數(shù)≤(n1或n2中行數(shù)多的一個(gè))列數(shù)≤m1+m2(4)自然連接運(yùn)算108笛卡爾積建立兩個(gè)關(guān)系的連接,但得到的關(guān)系龐大且109有三個(gè)關(guān)系R、S和T,由關(guān)系R和S通過(guò)運(yùn)算得到關(guān)系T,則使用的運(yùn)算為笛卡爾積ABk1f1k2r1BCf13r13ABCk1f13k2r13RST自然連接ABk1f1k2r1BCf13r13ABBCk1f1f13k1f1r13k2r1f13k2r1r13RST109有三個(gè)關(guān)系R、S和T,由關(guān)系R和S通過(guò)運(yùn)算得到關(guān)系T,110在三個(gè)關(guān)系R,S和T如下:由關(guān)系R和S通過(guò)自然連接運(yùn)算得到關(guān)系T。ABm1n2BC1335ABCm13RST110在三個(gè)關(guān)系R,S和T如下:ABm1n2BC1335第111頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)與管理數(shù)據(jù)庫(kù)設(shè)計(jì)的兩種方法:
(1)面向數(shù)據(jù):以信息需求為主,兼顧處理需求;
(2)面向過(guò)程:以處理需求為主,兼顧信息需求。
數(shù)據(jù)庫(kù)的生命周期:需求分析階段結(jié)構(gòu)析方法和面向?qū)ο蟮姆椒〝?shù)據(jù)字典是各類數(shù)據(jù)描述的集合,包括5個(gè)部分:數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、處理過(guò)程。概念設(shè)計(jì)階段分析數(shù)據(jù)內(nèi)在語(yǔ)義關(guān)系。E-R模型邏輯設(shè)計(jì)階段物理設(shè)計(jì)階段編碼階段測(cè)試階段運(yùn)行階段進(jìn)一步修改階段第111頁(yè)數(shù)據(jù)庫(kù)設(shè)計(jì)與管理數(shù)據(jù)庫(kù)設(shè)計(jì)的兩種方法:
(1)面1124.4數(shù)據(jù)庫(kù)設(shè)計(jì)與管理數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)(DBAS)中,核心問(wèn)題是數(shù)據(jù)庫(kù)設(shè)計(jì)。需求分析概念設(shè)計(jì)邏輯設(shè)計(jì)物理設(shè)計(jì)編碼測(cè)試運(yùn)行進(jìn)一步修改分析客戶的業(yè)務(wù)和數(shù)據(jù)處理需求;設(shè)計(jì)數(shù)據(jù)庫(kù)的E-R模型圖,確認(rèn)需求信息的正確和完整;將E-R圖轉(zhuǎn)換為多張表,進(jìn)行邏輯設(shè)計(jì),并應(yīng)用數(shù)據(jù)庫(kù)設(shè)計(jì)的三大范式進(jìn)行審核;
數(shù)據(jù)庫(kù)內(nèi)模式包括存儲(chǔ)結(jié)構(gòu)和存取方法。
重點(diǎn)記8個(gè)階段選擇具體數(shù)據(jù)庫(kù)進(jìn)行物理實(shí)現(xiàn),并編寫(xiě)代碼實(shí)現(xiàn)前端應(yīng)用;
1124.4數(shù)據(jù)庫(kù)設(shè)計(jì)與管理數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)(DBAS)中,第113頁(yè)數(shù)據(jù)庫(kù)管理的內(nèi)容(1)數(shù)據(jù)庫(kù)的建立;(2)數(shù)據(jù)庫(kù)的調(diào)整;(3)數(shù)據(jù)庫(kù)的重組;(4)數(shù)據(jù)庫(kù)安全性與完整性控制;(5)數(shù)據(jù)庫(kù)的故障恢復(fù);(6)數(shù)據(jù)庫(kù)監(jiān)控。第113頁(yè)數(shù)據(jù)庫(kù)管理的內(nèi)容(1)數(shù)據(jù)庫(kù)的建立;11406年9月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷一、單選題4)在數(shù)據(jù)庫(kù)系統(tǒng)中,用戶所見(jiàn)的數(shù)據(jù)模式為A)概念模式B)外模式C)內(nèi)模式D)物理模式5)數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和A)編碼設(shè)計(jì)B)測(cè)試階段C)運(yùn)行階段D)物理設(shè)計(jì)D4D5√√11406年9月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷一、單選題D41156)設(shè)有如下三個(gè)表AmnBC13ABCm13n13下列操作中正確的是A)T=R∩SB)T=R∪SC)T=R×SD)=R/SRSTD6√A)并B)交C)笛卡爾積D)除1156)設(shè)有如下三個(gè)表AmnBC13ABCm13n13下列1169)數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的A)存儲(chǔ)問(wèn)題B)共享問(wèn)題C)安全問(wèn)題D)保護(hù)文題二、填空題3)一個(gè)關(guān)系表的行稱為【3】
D9T3√元組1169)數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的D9T3√元組11707年4月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷一、單選題8)在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)為A)并
B)交
C)投影
D)笛卡兒乘積9)在E-R圖中,用來(lái)表示實(shí)體之間聯(lián)系的圖形是
A)矩形
B)橢圓形
C)菱形
D)平行四邊形√√D9D811707年4月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷一、單選題√√11810)下列敘述中錯(cuò)誤的是
A)在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
B)數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問(wèn)題
C)數(shù)據(jù)庫(kù)設(shè)計(jì)是指在已有數(shù)據(jù)庫(kù)管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫(kù)
D)數(shù)據(jù)庫(kù)系統(tǒng)需要操作系統(tǒng)的支持√D10二、填空題3)在數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【3】
。數(shù)據(jù)庫(kù)管理系統(tǒng)或DBMST311810)下列敘述中錯(cuò)誤的是√D10二、填空題數(shù)據(jù)庫(kù)管理系11907年9月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷一、單選題9)下列敘述中正確的是A)數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持B)數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問(wèn)題C)數(shù)據(jù)庫(kù)管理系統(tǒng)就是數(shù)據(jù)庫(kù)系統(tǒng)D)以上三種說(shuō)法都不對(duì) D9√11907年9月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷一、單選題D912010)下列敘述中正確的是A)為了建立一個(gè)關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系B)表示關(guān)系的二維表中各元組的每一個(gè)分量還可以分成若干數(shù)據(jù)項(xiàng)C)一個(gè)關(guān)系的屬性名表稱為關(guān)系模式D)一個(gè)關(guān)系可以包括多個(gè)二維表二、填空題5)在E-R圖中,矩形表示[5]。D10T5√實(shí)體集12010)下列敘述中正確的是D10T5√實(shí)體集12108年4月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷一、單選題8)在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過(guò)程屬于A)需求分析階段B)概念設(shè)計(jì)階段C)邏輯設(shè)計(jì)階段D)物理設(shè)計(jì)階段D8√12108年4月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷一、單選題D122(9)有三個(gè)關(guān)系R、S和T如下:
由關(guān)系R和S通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為A.并B.自然連接C.笛卡爾積D.交D9√122(9)有三個(gè)關(guān)系R、S和T如下:D9√123
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年陜西寧陜縣文化旅游投資開(kāi)發(fā)有限責(zé)任公司招聘筆試參考題庫(kù)附帶答案詳解
- 2025年版?zhèn)€人房產(chǎn)出售交易資金監(jiān)管及風(fēng)險(xiǎn)控制合同
- 2025年全球及中國(guó)阻燃塑料膜行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球3D激光雷達(dá)掃描儀行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球低截止光纖行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)有機(jī)硅柔性皮膚粘合劑行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025版無(wú)證二手房交易合同糾紛調(diào)解及賠償協(xié)議3篇
- 委托接送子女上下學(xué)合同
- 教育政策解讀與匯報(bào)策略
- 二零二五年度廚師個(gè)人工作室聘用合同規(guī)范4篇
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案
- 中醫(yī)診療方案腎病科
- 2025年安慶港華燃?xì)庀薰菊衅腹ぷ魅藛T14人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 人教版(2025新版)七年級(jí)下冊(cè)數(shù)學(xué)第七章 相交線與平行線 單元測(cè)試卷(含答案)
- 玩具有害物質(zhì)風(fēng)險(xiǎn)評(píng)估-洞察分析
- 2024年河南省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 企業(yè)合規(guī)管理實(shí)務(wù)
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識(shí)
- Hypermesh lsdyna轉(zhuǎn)動(dòng)副連接課件完整版
- 小學(xué)六年級(jí)數(shù)學(xué)計(jì)算題100道(含答案)
評(píng)論
0/150
提交評(píng)論