全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)Access_第1頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)Access_第2頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)Access_第3頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)Access_第4頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)Access_第5頁(yè)
已閱讀5頁(yè),還剩221頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、全國(guó)計(jì)算機(jī)等級(jí)考試全國(guó)計(jì)算機(jī)等級(jí)考試 二級(jí)公共基礎(chǔ)知識(shí)二級(jí)公共基礎(chǔ)知識(shí) 基本要求基本要求 n1. 掌握算法的基本概念。掌握算法的基本概念。 n2. 掌握基本掌握基本數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)及其操作。及其操作。 n3. 掌握基本排序和查找算法。掌握基本排序和查找算法。 n4. 掌握逐步求精的結(jié)構(gòu)化掌握逐步求精的結(jié)構(gòu)化程序設(shè)計(jì)程序設(shè)計(jì)方法。方法。 n5. 掌握掌握軟件工程軟件工程的基本方法,具有初步應(yīng)的基本方法,具有初步應(yīng) 用相關(guān)技術(shù)進(jìn)行軟件開(kāi)發(fā)的能力。用相關(guān)技術(shù)進(jìn)行軟件開(kāi)發(fā)的能力。 n6. 掌握掌握數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的基本知識(shí),了解關(guān)系數(shù)據(jù)的基本知識(shí),了解關(guān)系數(shù)據(jù) 庫(kù)的設(shè)計(jì)。庫(kù)的設(shè)計(jì)。 考試內(nèi)容考試內(nèi)容 基本

2、數(shù)據(jù)結(jié)構(gòu)與算法基本數(shù)據(jù)結(jié)構(gòu)與算法 程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ) 軟件工程基礎(chǔ)軟件工程基礎(chǔ) 數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ) 內(nèi)容內(nèi)容 2006/92007/42007/92008/42008/9 10 10 8 2 12 8 4 6 12 8 4 6 10 2 8 10 10 2 8 10 一、 基本數(shù)據(jù)結(jié)構(gòu)與算法 1. 算法的基本概念;算法復(fù)雜度的概念和意義(時(shí)間復(fù)雜度算法的基本概念;算法復(fù)雜度的概念和意義(時(shí)間復(fù)雜度 與空間復(fù)雜度)。與空間復(fù)雜度)。 2. 數(shù)據(jù)結(jié)構(gòu)的定義;數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu);數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)的定義;數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu);數(shù)據(jù)結(jié)構(gòu) 的圖形表示;線性結(jié)構(gòu)與非線性結(jié)構(gòu)的概念。

3、的圖形表示;線性結(jié)構(gòu)與非線性結(jié)構(gòu)的概念。 3. 線性表的定義;線性表的順序存儲(chǔ)結(jié)構(gòu)及其插入與刪除運(yùn)線性表的定義;線性表的順序存儲(chǔ)結(jié)構(gòu)及其插入與刪除運(yùn) 算。算。 4. 棧和隊(duì)列的定義;棧和隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算。棧和隊(duì)列的定義;棧和隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算。 5. 線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運(yùn)算。線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運(yùn)算。 6. 樹(shù)的基本概念;二叉樹(shù)的定義及其存儲(chǔ)結(jié)構(gòu);二叉樹(shù)的前樹(shù)的基本概念;二叉樹(shù)的定義及其存儲(chǔ)結(jié)構(gòu);二叉樹(shù)的前 序、中序和后序遍歷。序、中序和后序遍歷。 7. 順序查找與二分法查找算法;基本排序算法(交換類(lèi)排序,順序查找與二

4、分法查找算法;基本排序算法(交換類(lèi)排序, 選擇類(lèi)排序,插入類(lèi)排序)。選擇類(lèi)排序,插入類(lèi)排序)。 二、 程序設(shè)計(jì)基礎(chǔ) 1. 程序設(shè)計(jì)方法與風(fēng)格。程序設(shè)計(jì)方法與風(fēng)格。 2. 結(jié)構(gòu)化程序設(shè)計(jì)。結(jié)構(gòu)化程序設(shè)計(jì)。 3. 面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,對(duì)象,方面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,對(duì)象,方 法,屬性及繼承與多態(tài)性。法,屬性及繼承與多態(tài)性。 三、 軟件工程基礎(chǔ) 1. 軟件工程基本概念,軟件生命周期概念,軟軟件工程基本概念,軟件生命周期概念,軟 件工具與軟件開(kāi)發(fā)環(huán)境。件工具與軟件開(kāi)發(fā)環(huán)境。 2. 結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟 件需求規(guī)格說(shuō)明書(shū)。件需求規(guī)格說(shuō)明書(shū)。 3

5、. 結(jié)構(gòu)化設(shè)計(jì)方法,總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)。結(jié)構(gòu)化設(shè)計(jì)方法,總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)。 4. 軟件測(cè)試的方法,白盒測(cè)試與黑盒測(cè)試,測(cè)軟件測(cè)試的方法,白盒測(cè)試與黑盒測(cè)試,測(cè) 試用例設(shè)計(jì),軟件測(cè)試的實(shí)施,單元測(cè)試、試用例設(shè)計(jì),軟件測(cè)試的實(shí)施,單元測(cè)試、 集成測(cè)試和系統(tǒng)測(cè)試。集成測(cè)試和系統(tǒng)測(cè)試。 5. 程序的調(diào)試,靜態(tài)調(diào)試與動(dòng)態(tài)調(diào)試。程序的調(diào)試,靜態(tài)調(diào)試與動(dòng)態(tài)調(diào)試。 四、數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ) 1. 數(shù)據(jù)庫(kù)的基本概念:數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)管理系數(shù)據(jù)庫(kù)的基本概念:數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)管理系 統(tǒng),數(shù)據(jù)庫(kù)系統(tǒng)。統(tǒng),數(shù)據(jù)庫(kù)系統(tǒng)。 2. 數(shù)據(jù)模型,實(shí)體聯(lián)系模型及數(shù)據(jù)模型,實(shí)體聯(lián)系模型及e-r圖,從圖,從e-r 圖導(dǎo)出關(guān)系數(shù)據(jù)模型。圖導(dǎo)出關(guān)

6、系數(shù)據(jù)模型。 3. 關(guān)系代數(shù)運(yùn)算,包括集合運(yùn)算及選擇、投影、關(guān)系代數(shù)運(yùn)算,包括集合運(yùn)算及選擇、投影、 連接運(yùn)算,數(shù)據(jù)庫(kù)規(guī)范化理論。連接運(yùn)算,數(shù)據(jù)庫(kù)規(guī)范化理論。 4. 數(shù)據(jù)庫(kù)設(shè)計(jì)方法和步驟:需求分析、概念設(shè)數(shù)據(jù)庫(kù)設(shè)計(jì)方法和步驟:需求分析、概念設(shè) 計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)的相關(guān)策略。計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)的相關(guān)策略。 考試方式 1、 公共基礎(chǔ)的考試方式為筆試,與公共基礎(chǔ)的考試方式為筆試,與c語(yǔ)言語(yǔ)言 (visualbasic、visual foxpro、java、 access、visual c+)的筆試部分合為一)的筆試部分合為一 張?jiān)嚲怼9不A(chǔ)部分占全卷的張?jiān)嚲?。公共基礎(chǔ)部分占全卷的30分。分

7、。 2、 公共基礎(chǔ)知識(shí)有公共基礎(chǔ)知識(shí)有10道選擇題和道選擇題和5道填空題。道填空題。 學(xué)習(xí)方法 n理解基本概念理解基本概念 n多做練習(xí)多做練習(xí) n適當(dāng)記憶一些名詞適當(dāng)記憶一些名詞 n與所學(xué)的與所學(xué)的vfpcaccess程序設(shè)計(jì)知識(shí)程序設(shè)計(jì)知識(shí) 結(jié)合起來(lái),以增加對(duì)知識(shí)的理解能力結(jié)合起來(lái),以增加對(duì)知識(shí)的理解能力 1. 基本數(shù)據(jù)結(jié)構(gòu)與算法 1.1 算法 1.1.1 算法算法(algorithm)基本概念基本概念 對(duì)特定問(wèn)題求解步驟的一種描述,它是一組嚴(yán)謹(jǐn)?shù)貙?duì)特定問(wèn)題求解步驟的一種描述,它是一組嚴(yán)謹(jǐn)?shù)?定義運(yùn)算順序的規(guī)則,并且每一個(gè)規(guī)則都是定義運(yùn)算順序的規(guī)則,并且每一個(gè)規(guī)則都是有效有效的,的, 且是且

8、是明確明確的,此順序?qū)⒃诘?,此順序?qū)⒃谟邢薜拇螖?shù)有限的次數(shù)下終止。下終止。 算法算法 一級(jí)算法一級(jí)算法: s1:輸入圓的半徑輸入圓的半徑r; s2:求周長(zhǎng)求周長(zhǎng)2r; s3:求面積求面積 r2; s4:輸出輸出周長(zhǎng)和面積周長(zhǎng)和面積; 例題例題:已知圓的半徑已知圓的半徑,求周長(zhǎng)和面積求周長(zhǎng)和面積. 程序程序 do while .t. input “輸入圓的半徑:輸入圓的半徑:” to r if r0 ?“輸入不能是負(fù)數(shù),重新輸入!輸入不能是負(fù)數(shù),重新輸入!” loop else exit endif enddo s=pi()*r*r l=2*pi()*r ?s,l 算法的基本特征算法的基本特征:

9、 (1)可行性可行性 (2)確定性確定性 (3)有窮性有窮性 (4)輸入和輸出輸入和輸出(擁有足夠的情報(bào))(擁有足夠的情報(bào)) 1.1.2 算法的基本要素算法的基本要素 1、對(duì)數(shù)據(jù)對(duì)象的運(yùn)算和操作、對(duì)數(shù)據(jù)對(duì)象的運(yùn)算和操作 n算術(shù)運(yùn)算算術(shù)運(yùn)算 n邏輯運(yùn)算邏輯運(yùn)算 n關(guān)系運(yùn)算關(guān)系運(yùn)算 n數(shù)據(jù)傳輸數(shù)據(jù)傳輸 2、算法的控制結(jié)構(gòu)、算法的控制結(jié)構(gòu) n算法中各操作之間的執(zhí)行順序算法中各操作之間的執(zhí)行順序 n一個(gè)算法一般可以用一個(gè)算法一般可以用順序、選擇、循環(huán)順序、選擇、循環(huán)三種基本結(jié)三種基本結(jié) 構(gòu)組合而成。構(gòu)組合而成。 input “輸入圓的半徑:輸入圓的半徑:” to r if r0 ?“輸入不能是負(fù)數(shù),重

10、新輸入!輸入不能是負(fù)數(shù),重新輸入!” 循環(huán)輸入循環(huán)輸入r else 退出循環(huán)退出循環(huán) endif s=pi()*r*r l=2*pi()*r 輸出輸出s,l 算術(shù)運(yùn)算算術(shù)運(yùn)算 邏輯運(yùn)算邏輯運(yùn)算 關(guān)系運(yùn)算關(guān)系運(yùn)算 數(shù)據(jù)傳輸數(shù)據(jù)傳輸 順序、選擇、順序、選擇、 循環(huán)三種基循環(huán)三種基 本結(jié)構(gòu)本結(jié)構(gòu) 1.1.3 算法設(shè)計(jì)基本方法算法設(shè)計(jì)基本方法 n列舉法列舉法 n歸納法歸納法 n遞推遞推 n遞歸(以簡(jiǎn)潔的形式設(shè)計(jì)和描述算法)遞歸(以簡(jiǎn)潔的形式設(shè)計(jì)和描述算法) n減半遞推技術(shù)減半遞推技術(shù) n回溯法回溯法 1.2 算法復(fù)雜度算法復(fù)雜度 1.2.1 時(shí)間復(fù)雜度時(shí)間復(fù)雜度 n是指執(zhí)行算法所需要的計(jì)算工作量。是指

11、執(zhí)行算法所需要的計(jì)算工作量。 n通常有事后統(tǒng)計(jì)法和通常有事后統(tǒng)計(jì)法和事前分析估算法事前分析估算法。 算法在執(zhí)行過(guò)程中所需算法在執(zhí)行過(guò)程中所需基本運(yùn)算基本運(yùn)算的執(zhí)行次數(shù)來(lái)度量算法的執(zhí)行次數(shù)來(lái)度量算法 的工作量的工作量. 算法所執(zhí)行的基本運(yùn)算次數(shù)與算法所執(zhí)行的基本運(yùn)算次數(shù)與問(wèn)題的規(guī)模問(wèn)題的規(guī)模n有關(guān)有關(guān). 執(zhí)行算法所需要的計(jì)算工作量和執(zhí)行算法所需要的計(jì)算工作量和f(n)同步增長(zhǎng),記為同步增長(zhǎng),記為: 算法的工作量算法的工作量=f(n) 時(shí)間復(fù)雜度時(shí)間復(fù)雜度=o(f(n) 例子例子4:for ( i=2 ;i=n;+i) for (j=2 ;j=i-1;+j) +x ; 基本運(yùn)算:基本運(yùn)算: 基本運(yùn)

12、算的執(zhí)行次數(shù):基本運(yùn)算的執(zhí)行次數(shù): x增增1 i=2 0 i=3 1 i=4 2 i=n n-2 1+2+3+(n-2) = (n-1)(n-2)/2 o( ) 2 n 例子例子2:+x; o( 1 ) 例子例子3: for (i=1 ;i=n;+i) +x; o( n ) 時(shí)間復(fù)雜度:時(shí)間復(fù)雜度:o(n*n-3n+2)/2) 基本運(yùn)算:基本運(yùn)算: 基本運(yùn)算的執(zhí)行次數(shù):基本運(yùn)算的執(zhí)行次數(shù): 時(shí)間復(fù)雜度:時(shí)間復(fù)雜度: 1 x增增1 基本運(yùn)算:基本運(yùn)算: 基本運(yùn)算的執(zhí)行次數(shù):基本運(yùn)算的執(zhí)行次數(shù): 時(shí)間復(fù)雜度:時(shí)間復(fù)雜度: x增增1 n 1.2.2 算法的空間復(fù)雜度算法的空間復(fù)雜度 n 一般是指執(zhí)行

13、這個(gè)算法所需要的內(nèi)存空間一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間 n一個(gè)算法所占用的存儲(chǔ)空間包括一個(gè)算法所占用的存儲(chǔ)空間包括算法程序算法程序所占所占 的空間、的空間、輸入的初始數(shù)據(jù)輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及所占的存儲(chǔ)空間以及 某種某種數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲(chǔ)空間所需要的附加存儲(chǔ)空間 n 一個(gè)上機(jī)執(zhí)行的程序除了需要存儲(chǔ)空間來(lái)寄一個(gè)上機(jī)執(zhí)行的程序除了需要存儲(chǔ)空間來(lái)寄 存本身所用指令、常數(shù)、變量和輸入數(shù)據(jù)外,存本身所用指令、常數(shù)、變量和輸入數(shù)據(jù)外, 也需要一些對(duì)數(shù)據(jù)進(jìn)行操作的工作單元和存儲(chǔ)也需要一些對(duì)數(shù)據(jù)進(jìn)行操作的工作單元和存儲(chǔ) 一些為實(shí)現(xiàn)計(jì)算所需信息的輔助空間。一些為實(shí)現(xiàn)計(jì)算所需信息的輔

14、助空間。 n 算法的時(shí)間復(fù)雜度是指算法的時(shí)間復(fù)雜度是指 a) 執(zhí)行算法程序所需要的時(shí)間執(zhí)行算法程序所需要的時(shí)間 b) 算法程序的長(zhǎng)度算法程序的長(zhǎng)度 c) 算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù) d) 算法程序中的指令條數(shù)算法程序中的指令條數(shù) n算法的基本特征是可行性、確定性、算法的基本特征是可行性、確定性、 【1】 和擁有足夠的情報(bào)。和擁有足夠的情報(bào)。 n算法的空間復(fù)雜度是指算法的空間復(fù)雜度是指 a) 算法程序的長(zhǎng)度算法程序的長(zhǎng)度 b) 算法程序中的指令條數(shù)算法程序中的指令條數(shù) c) 算法程序所占的存儲(chǔ)空間算法程序所占的存儲(chǔ)空間 d) 執(zhí)行過(guò)程中所需要的存儲(chǔ)空間執(zhí)

15、行過(guò)程中所需要的存儲(chǔ)空間 n在計(jì)算機(jī)中,算法是指在計(jì)算機(jī)中,算法是指 a) 加工方法加工方法b) 解題方案的準(zhǔn)確而完整的描述解題方案的準(zhǔn)確而完整的描述 c) 排序方法排序方法d) 查詢方法查詢方法 例題講解例題講解 有窮性有窮性 n算法分析的目的是算法分析的目的是 a) 找出數(shù)據(jù)結(jié)構(gòu)的合理性找出數(shù)據(jù)結(jié)構(gòu)的合理性 b) 找出算法中輸入和輸出之間的關(guān)系找出算法中輸入和輸出之間的關(guān)系 c) 分析算法的易懂性和可靠性分析算法的易懂性和可靠性 d) 分析算法的效率以求改進(jìn)分析算法的效率以求改進(jìn) n算法的工作量大小和實(shí)現(xiàn)算法所需的存儲(chǔ)單元多少分別稱為算法算法的工作量大小和實(shí)現(xiàn)算法所需的存儲(chǔ)單元多少分別稱為

16、算法 的的 【1】 。 時(shí)間復(fù)雜度和空間復(fù)雜度時(shí)間復(fù)雜度和空間復(fù)雜度 1.2 數(shù)據(jù)結(jié)構(gòu) n數(shù)據(jù)結(jié)構(gòu)的定義 n數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu) n數(shù)據(jù)結(jié)構(gòu)的圖形表示 n線性結(jié)構(gòu)與非線性結(jié)構(gòu) 1.2.1 數(shù)據(jù)結(jié)構(gòu)研究的主要內(nèi)容數(shù)據(jù)結(jié)構(gòu)研究的主要內(nèi)容 (1)數(shù)據(jù)集中數(shù)據(jù)之間的邏輯關(guān)系數(shù)據(jù)集中數(shù)據(jù)之間的邏輯關(guān)系 線性線性 樹(shù)樹(shù) 圖圖 (2)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu) (3)各種數(shù)據(jù)結(jié)構(gòu)的運(yùn)算各種數(shù)據(jù)結(jié)構(gòu)的運(yùn)算 能輸入到計(jì)算機(jī)中能輸入到計(jì)算機(jī)中 并能被計(jì)算機(jī)程序處理的并能被計(jì)算機(jī)程序處理的 符號(hào)的集合。符號(hào)的集合。 整數(shù)整數(shù)(1,2)(1,2)、實(shí)數(shù)、實(shí)數(shù)(1.1,1.2)(1.1,1.2) 字符串字符串(b

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

18、算的一般方法的學(xué)科。的一般方法的學(xué)科。 最簡(jiǎn)單的辦法之一是建立一張表,最簡(jiǎn)單的辦法之一是建立一張表, 每一本書(shū)的信息在表中占一行,如每一本書(shū)的信息在表中占一行,如 如何將如何將0,1,2,3,4,5,6,7,8,90,1,2,3,4,5,6,7,8,9這這1010個(gè)數(shù)存放在個(gè)數(shù)存放在 計(jì)算機(jī)中能最快地達(dá)到你所需要的目的?計(jì)算機(jī)中能最快地達(dá)到你所需要的目的? 目的不同,最佳的存儲(chǔ)方方法就不同目的不同,最佳的存儲(chǔ)方方法就不同。 從大到小排列:從大到小排列:9,8,7,6,5,4,3,2,1,09,8,7,6,5,4,3,2,1,0 輸出偶數(shù):輸出偶數(shù):0,2,4,6,8,1,3,5,7,9 0,2

19、,4,6,8,1,3,5,7,9 數(shù)據(jù)元素在數(shù)據(jù)元素在 計(jì)算機(jī)中的表示計(jì)算機(jī)中的表示 數(shù)據(jù)結(jié)構(gòu)是一門(mén)研究數(shù)據(jù)結(jié)構(gòu)是一門(mén)研究數(shù)據(jù)數(shù)據(jù)組織組織、 存儲(chǔ)存儲(chǔ)和和運(yùn)算運(yùn)算的一般方法的學(xué)科。的一般方法的學(xué)科。 對(duì)數(shù)據(jù)結(jié)構(gòu)中的節(jié)點(diǎn)進(jìn)行對(duì)數(shù)據(jù)結(jié)構(gòu)中的節(jié)點(diǎn)進(jìn)行 操作處理操作處理 (插入、刪除、修改、查找、排序插入、刪除、修改、查找、排序) (1 1)數(shù)據(jù)元素)數(shù)據(jù)元素(data element)(data element) 數(shù)據(jù)元素是數(shù)據(jù)的基本單位,即數(shù)據(jù)數(shù)據(jù)元素是數(shù)據(jù)的基本單位,即數(shù)據(jù) 集合中的個(gè)體。集合中的個(gè)體。 有時(shí)一個(gè)數(shù)據(jù)元數(shù)可由若干有時(shí)一個(gè)數(shù)據(jù)元數(shù)可由若干數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng) (data item)(dat

20、a item)組成。數(shù)據(jù)項(xiàng)是數(shù)據(jù)的最小組成。數(shù)據(jù)項(xiàng)是數(shù)據(jù)的最小 單位。單位。 數(shù)據(jù)元素亦稱數(shù)據(jù)元素亦稱節(jié)點(diǎn)節(jié)點(diǎn)或或記錄記錄。 1數(shù)據(jù)的邏輯結(jié)構(gòu)數(shù)據(jù)的邏輯結(jié)構(gòu) 2、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu) 3、數(shù)據(jù)的運(yùn)算:檢索、排序、插入、刪除、修改等。、數(shù)據(jù)的運(yùn)算:檢索、排序、插入、刪除、修改等。 a線性結(jié)構(gòu)線性結(jié)構(gòu) b非線性結(jié)構(gòu)非線性結(jié)構(gòu) a 順序存儲(chǔ)順序存儲(chǔ) b 鏈?zhǔn)酱鎯?chǔ)鏈?zhǔn)酱鎯?chǔ) 線性表線性表 棧棧 隊(duì)隊(duì) 樹(shù)形結(jié)構(gòu)樹(shù)形結(jié)構(gòu) 圖形結(jié)構(gòu)圖形結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)的三個(gè)方面數(shù)據(jù)結(jié)構(gòu)的三個(gè)方面 數(shù)據(jù)結(jié)構(gòu)可描述為數(shù)據(jù)結(jié)構(gòu)可描述為 group=(d,r) (2)邏輯結(jié)構(gòu))邏輯結(jié)構(gòu) 有限個(gè)數(shù)據(jù)元素的集合有限個(gè)數(shù)據(jù)元素的集

21、合 有限個(gè)數(shù)據(jù)元素有限個(gè)數(shù)據(jù)元素間關(guān)系的集合間關(guān)系的集合 線性線性 樹(shù)樹(shù) 圖圖 常用數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu): a.線性結(jié)構(gòu)線性結(jié)構(gòu) (a , b , c , ,x ,y , z) 例例:學(xué)生成績(jī)表學(xué)生成績(jī)表 8686胡孝臣胡孝臣98611039861103 9595劉忠賞劉忠賞98611079861107 100100張卓張卓98611099861109 成績(jī)成績(jī)姓名姓名學(xué)號(hào)學(xué)號(hào) 線性表線性表 棧棧后進(jìn)先出后進(jìn)先出 隊(duì)列隊(duì)列先進(jìn)先出先進(jìn)先出 例例: :英文字母表英文字母表 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)s=(d,r) d=春春,夏夏,秋秋,冬冬 r=, 什么型的數(shù)據(jù)結(jié)構(gòu)什么型的數(shù)據(jù)結(jié)構(gòu)? 用圖形工具用圖形工具

22、 春春夏夏秋秋 冬冬 線性結(jié)構(gòu)線性結(jié)構(gòu) 樹(shù)形結(jié)構(gòu)樹(shù)形結(jié)構(gòu) 例例:全校學(xué)生檔案管理的組織方式全校學(xué)生檔案管理的組織方式 例例:計(jì)算機(jī)文件管理系統(tǒng)也是典型的樹(shù)形結(jié)構(gòu)計(jì)算機(jī)文件管理系統(tǒng)也是典型的樹(shù)形結(jié)構(gòu) b非線性結(jié)構(gòu)非線性結(jié)構(gòu) 14 23 例例:數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)b(d,r) d= 1 , 2 , 3 , 4 r=(1,2) , (1,3) , (1,4) , (2,3), (3,4) , (2,4) 2 1 3 例例:數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)c(d,r) d= 1 , 2 , 3 r= , , , 圖形結(jié)構(gòu)圖形結(jié)構(gòu) 元素元素n n . 元素元素i i . 元素元素2 2 元素元素1 1 lo lo+m lo

23、+(i-1)*m lo+(n-1)*m 存儲(chǔ)地址存儲(chǔ)地址存儲(chǔ)內(nèi)容存儲(chǔ)內(nèi)容 loc(ai)=lo+(i-1)*m 1、順序存儲(chǔ)、順序存儲(chǔ) 每個(gè)元素所占用每個(gè)元素所占用 的存儲(chǔ)單元個(gè)數(shù)的存儲(chǔ)單元個(gè)數(shù) (3)存儲(chǔ)結(jié)構(gòu))存儲(chǔ)結(jié)構(gòu) 例:線性表例:線性表(zhao,qian,sun,li,zhou,wu,zheng,wang) 順序存儲(chǔ)結(jié)構(gòu):順序存儲(chǔ)結(jié)構(gòu): 存儲(chǔ)地址存儲(chǔ)地址數(shù)據(jù)數(shù)據(jù) 7 8 9 10 11 12 13 14 zhao qian sun li zhou wu zheng wang 7 基地址基地址 順序存儲(chǔ)結(jié)構(gòu),將邏輯上相鄰的順序存儲(chǔ)結(jié)構(gòu),將邏輯上相鄰的 數(shù)據(jù)元素存儲(chǔ)在物理上相鄰的存數(shù)據(jù)元素

24、存儲(chǔ)在物理上相鄰的存 儲(chǔ)單元里儲(chǔ)單元里,具有以下特點(diǎn)具有以下特點(diǎn): 1.隨機(jī)存取。隨機(jī)存取。 2.作插入或刪除操作時(shí),需移動(dòng)作插入或刪除操作時(shí),需移動(dòng) 大量元數(shù)。大量元數(shù)。 3.長(zhǎng)度變化較大時(shí),需按最大空長(zhǎng)度變化較大時(shí),需按最大空 間分配。間分配。 4.表的容量難以擴(kuò)充。表的容量難以擴(kuò)充。 2、鏈?zhǔn)酱鎯?chǔ)、鏈?zhǔn)酱鎯?chǔ) 每個(gè)節(jié)點(diǎn)都由兩部分組成:每個(gè)節(jié)點(diǎn)都由兩部分組成: 數(shù)據(jù)域數(shù)據(jù)域和和指針域指針域。 數(shù)據(jù)域數(shù)據(jù)域存放元素本身的數(shù)據(jù),存放元素本身的數(shù)據(jù), 指針域指針域存放指針。存放指針。 數(shù)據(jù)元素之間邏輯上的聯(lián)系由數(shù)據(jù)元素之間邏輯上的聯(lián)系由 指針來(lái)體現(xiàn)。指針來(lái)體現(xiàn)。 例:線性表例:線性表(zhao,q

25、ian,sun,li,zhou,wu,zheng,wang) 鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu):鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu): 存儲(chǔ)地址存儲(chǔ)地址數(shù)據(jù)數(shù)據(jù) 1 7 13 19 25 31 37 43 li qian sun wang wu zhao zheng zhou 指針指針 43 13 1 null 37 7 19 25 31 頭指針頭指針 通常我們把鏈表畫(huà)成用通常我們把鏈表畫(huà)成用箭頭箭頭相鏈接的結(jié)點(diǎn)的序列,結(jié)點(diǎn)相鏈接的結(jié)點(diǎn)的序列,結(jié)點(diǎn) 之間的箭頭表示鏈域中的指針。之間的箭頭表示鏈域中的指針。 zhaoqiansun lizhouwu zhengwang / h 存儲(chǔ)地址存儲(chǔ)地址數(shù)據(jù)數(shù)據(jù) 1 7 13 19 25 31 37

26、 43 li qian sun wang wu zhao zheng zhou 指針指針 43 13 1 null 37 7 19 25 31 頭指針頭指針 1.比順序存儲(chǔ)結(jié)構(gòu)多用空間比順序存儲(chǔ)結(jié)構(gòu)多用空間(存儲(chǔ)密度小存儲(chǔ)密度小) (每個(gè)節(jié)點(diǎn)都由數(shù)據(jù)域和指針每個(gè)節(jié)點(diǎn)都由數(shù)據(jù)域和指針域域組成組成)。 2.邏輯上相鄰的節(jié)點(diǎn)物理上不必相鄰。邏輯上相鄰的節(jié)點(diǎn)物理上不必相鄰。 3.插入、刪除靈活插入、刪除靈活 (不必移動(dòng)節(jié)點(diǎn),只要改變節(jié)點(diǎn)中的指針不必移動(dòng)節(jié)點(diǎn),只要改變節(jié)點(diǎn)中的指針)。 4.非隨機(jī)存取。非隨機(jī)存取。 鏈接存儲(chǔ)結(jié)構(gòu)特點(diǎn):鏈接存儲(chǔ)結(jié)構(gòu)特點(diǎn): 1數(shù)據(jù)的邏輯結(jié)構(gòu)數(shù)據(jù)的邏輯結(jié)構(gòu) 2、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)、

27、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu) 3、數(shù)據(jù)的運(yùn)算:檢索、排序、插入、刪除、修改等。、數(shù)據(jù)的運(yùn)算:檢索、排序、插入、刪除、修改等。 a線性結(jié)構(gòu)線性結(jié)構(gòu) b非線性結(jié)構(gòu)非線性結(jié)構(gòu) a 順序存儲(chǔ)順序存儲(chǔ) b 鏈?zhǔn)酱鎯?chǔ)鏈?zhǔn)酱鎯?chǔ) 線性表線性表 棧棧 隊(duì)隊(duì) 樹(shù)形結(jié)構(gòu)樹(shù)形結(jié)構(gòu) 圖形結(jié)構(gòu)圖形結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)的三個(gè)方面數(shù)據(jù)結(jié)構(gòu)的三個(gè)方面 (亦稱物理結(jié)構(gòu)亦稱物理結(jié)構(gòu)) n鏈表不具有的特點(diǎn)是鏈表不具有的特點(diǎn)是 a) 不必事先估計(jì)存儲(chǔ)空間不必事先估計(jì)存儲(chǔ)空間 b) 可隨機(jī)訪問(wèn)任一元素可隨機(jī)訪問(wèn)任一元素 c) 插入刪除不需要移動(dòng)元素插入刪除不需要移動(dòng)元素 d) 所需空間與線性表長(zhǎng)度成正比所需空間與線性表長(zhǎng)度成正比 n數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存

28、儲(chǔ)結(jié)構(gòu),線性鏈表屬于數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于 【1】 。 n數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無(wú)關(guān)的是數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無(wú)關(guān)的是數(shù)據(jù)的 a) 存儲(chǔ)結(jié)構(gòu)存儲(chǔ)結(jié)構(gòu)b) 物理結(jié)構(gòu)物理結(jié)構(gòu) c) 邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)d) 物理和存儲(chǔ)結(jié)構(gòu)物理和存儲(chǔ)結(jié)構(gòu) n數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和 【1】 兩大類(lèi)。兩大類(lèi)。 n數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指 a)數(shù)據(jù)所占的存儲(chǔ)空間)數(shù)據(jù)所占的存儲(chǔ)空間 b)數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示)數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示 c)數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式)數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式 d)存儲(chǔ)在外存中的數(shù)據(jù))存儲(chǔ)在外

29、存中的數(shù)據(jù) 例題講解例題講解 存儲(chǔ)結(jié)構(gòu)存儲(chǔ)結(jié)構(gòu) 非線性結(jié)構(gòu)非線性結(jié)構(gòu) n順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置 【2】 的存儲(chǔ)單元中。的存儲(chǔ)單元中。 n數(shù)據(jù)處理的最小單位是數(shù)據(jù)處理的最小單位是 a) 數(shù)據(jù)數(shù)據(jù) b) 數(shù)據(jù)元素?cái)?shù)據(jù)元素 c) 數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng) d) 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) n數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)的一門(mén)學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)的一門(mén)學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、 對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算,以及對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算,以及 a) 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu) b) 計(jì)算方法計(jì)算方法 c) 數(shù)據(jù)映象數(shù)據(jù)映象 d) 邏輯

30、存儲(chǔ)邏輯存儲(chǔ) n線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是 a) 順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu) b) 隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu) c) 隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu) d) 任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu)任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu) 相鄰相鄰 n根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程度,一根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程度,一 般將數(shù)據(jù)結(jié)構(gòu)分成般將數(shù)據(jù)結(jié)構(gòu)分成

31、 a) 動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu) b) 緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu) c) 線性結(jié)構(gòu)和非線性結(jié)構(gòu)線性結(jié)構(gòu)和非線性結(jié)構(gòu) d) 內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu) n數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的 【2】 以及對(duì)數(shù)據(jù)以及對(duì)數(shù)據(jù) 的操作運(yùn)算。的操作運(yùn)算。 n數(shù)據(jù)的基本單位是數(shù)據(jù)的基本單位是 【5】 。 n下列敘述中,錯(cuò)誤的是下列敘述中,錯(cuò)誤的是 a) 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān) b) 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率無(wú)關(guān)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率無(wú)關(guān) c) 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占

32、的空間不一定是連續(xù)的數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的 d) 一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu) 存儲(chǔ)結(jié)構(gòu)存儲(chǔ)結(jié)構(gòu) 數(shù)據(jù)元素?cái)?shù)據(jù)元素 1.3 線性表線性表 1.3.1 線性表的概念線性表的概念 線性表的定義:線性表的定義: 線性表線性表是是n個(gè)元素的有限序列,它們之間的關(guān)系可以排成一個(gè)元素的有限序列,它們之間的關(guān)系可以排成一 個(gè)線性序列:個(gè)線性序列: (a1,a2, ,ai, ,an) 其中其中n稱作表的稱作表的長(zhǎng)度長(zhǎng)度,當(dāng),當(dāng)n=0時(shí),稱作時(shí),稱作空表空表。 線性表的特點(diǎn):線性表的特點(diǎn): 1.線性表中所有元素的性質(zhì)相同。線性表中所有元素的性

33、質(zhì)相同。 2.除第一個(gè)和最后一個(gè)數(shù)據(jù)元素之外,其它數(shù)據(jù)元素有且僅有一個(gè)除第一個(gè)和最后一個(gè)數(shù)據(jù)元素之外,其它數(shù)據(jù)元素有且僅有一個(gè) 前驅(qū)和一個(gè)后繼前驅(qū)和一個(gè)后繼.第一個(gè)數(shù)據(jù)元素?zé)o前驅(qū)第一個(gè)數(shù)據(jù)元素?zé)o前驅(qū),最后一個(gè)數(shù)據(jù)元素?zé)o后繼。最后一個(gè)數(shù)據(jù)元素?zé)o后繼。 3.數(shù)據(jù)元素在表中的位置只取決于它自身的序號(hào)。數(shù)據(jù)元素在表中的位置只取決于它自身的序號(hào)。 在線性表上常用的運(yùn)算有:在線性表上常用的運(yùn)算有: 初始化、求長(zhǎng)度、取元素、修改、初始化、求長(zhǎng)度、取元素、修改、 前插、刪除、檢索、排序。前插、刪除、檢索、排序。 1.4 線性表的順序存儲(chǔ)結(jié)構(gòu)及其插入與刪除操作線性表的順序存儲(chǔ)結(jié)構(gòu)及其插入與刪除操作 n特點(diǎn):特點(diǎn)

34、: 1.線性表中數(shù)據(jù)元素類(lèi)型一線性表中數(shù)據(jù)元素類(lèi)型一 致,只致,只 有數(shù)據(jù)域,存儲(chǔ)空間利用率高。有數(shù)據(jù)域,存儲(chǔ)空間利用率高。 2.所有元素所占的存儲(chǔ)空間是連續(xù)的所有元素所占的存儲(chǔ)空間是連續(xù)的 3.各數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯各數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯 順序依次存放的順序依次存放的 4. 做插入、刪除時(shí)需移動(dòng)大量元素。做插入、刪除時(shí)需移動(dòng)大量元素。 5. 空間估計(jì)不明時(shí),按最大空間分配。空間估計(jì)不明時(shí),按最大空間分配。 順序存儲(chǔ)結(jié)構(gòu):順序存儲(chǔ)結(jié)構(gòu): 存儲(chǔ)地址存儲(chǔ)地址數(shù)據(jù)數(shù)據(jù) 7 8 9 10 11 12 13 14 zhao qian sun li zhou wu zheng wang 7

35、 基地址基地址 元素元素a an n . 元素元素a ai i . 元素元素a a2 2 元素元素a a1 1 b b+m b+(i-1)*m b+(maxlen-1)*m 存儲(chǔ)地址存儲(chǔ)地址內(nèi)存狀態(tài)內(nèi)存狀態(tài) loc(元素元素i)=b +(i-1)*m 順序存儲(chǔ)結(jié)構(gòu)示意圖順序存儲(chǔ)結(jié)構(gòu)示意圖(順序表順序表): 首地址首地址 起始地址起始地址 基地址基地址 每個(gè)元素所占用每個(gè)元素所占用 的存儲(chǔ)單元個(gè)數(shù)的存儲(chǔ)單元個(gè)數(shù) 1- 1插入運(yùn)算插入運(yùn)算 ai-1 . a2a1 alength ai+1ai x ai-1 . a2a1 alength ai+1ai x 插入算法的分析插入算法的分析: 假設(shè)線性表中

36、含有假設(shè)線性表中含有n個(gè)數(shù)據(jù)元素,在進(jìn)行插入操作個(gè)數(shù)據(jù)元素,在進(jìn)行插入操作 時(shí),若假定在時(shí),若假定在n+1個(gè)位置上插入元素的可能性均等,則個(gè)位置上插入元素的可能性均等,則 平均移動(dòng)元素的個(gè)數(shù)為:平均移動(dòng)元素的個(gè)數(shù)為: 1n 1i is 2 n 1)i(n 1n 1 e 1- 2刪除運(yùn)算刪除運(yùn)算 ai-1 . a2a1 alength ai+1ai ai-1 . a2a1 alength ai+1 刪除算法的分析刪除算法的分析: 在進(jìn)行刪除操作時(shí),若假定刪除每個(gè)元素的可能性均等,則在進(jìn)行刪除操作時(shí),若假定刪除每個(gè)元素的可能性均等,則 平均移動(dòng)元素的個(gè)數(shù)為:平均移動(dòng)元素的個(gè)數(shù)為: 總結(jié)總結(jié): 順序

37、存儲(chǔ)結(jié)構(gòu)表示的線性表,在做插入或刪除操作時(shí),平均需順序存儲(chǔ)結(jié)構(gòu)表示的線性表,在做插入或刪除操作時(shí),平均需 要移動(dòng)大約一半的數(shù)據(jù)元素。當(dāng)線性表的數(shù)據(jù)元素量較大,并且經(jīng)要移動(dòng)大約一半的數(shù)據(jù)元素。當(dāng)線性表的數(shù)據(jù)元素量較大,并且經(jīng) 常要對(duì)其做插入或刪除操作時(shí),這一點(diǎn)需要值得考慮。常要對(duì)其做插入或刪除操作時(shí),這一點(diǎn)需要值得考慮。 n 1i dl 2 1n i)(n n 1 e n鏈表不具有的特點(diǎn)是鏈表不具有的特點(diǎn)是 a) 不必事先估計(jì)存儲(chǔ)空間不必事先估計(jì)存儲(chǔ)空間 b) 可隨機(jī)訪問(wèn)任一元素可隨機(jī)訪問(wèn)任一元素 c) 插入刪除不需要移動(dòng)元素插入刪除不需要移動(dòng)元素 d) 所需空間與線性表長(zhǎng)度成正比所需空間與線性

38、表長(zhǎng)度成正比 n順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置 【2】 的存儲(chǔ)單元中。的存儲(chǔ)單元中。 n長(zhǎng)度為長(zhǎng)度為n的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元 素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù) 為為 【1】 。 n線性表若采用順序存儲(chǔ)結(jié)構(gòu)時(shí),要求內(nèi)存中可用存儲(chǔ)單元線性表若采用順序存儲(chǔ)結(jié)構(gòu)時(shí),要求內(nèi)存中可用存儲(chǔ)單元 的地址的地址 a) 必須是連續(xù)的必須是連續(xù)的 b) 部分地址必須是連續(xù)的部分地址必須是連續(xù)的 c) 一定是不連續(xù)的一定是不

39、連續(xù)的 d) 連續(xù)不連續(xù)都可以連續(xù)不連續(xù)都可以 例題講解例題講解 相鄰相鄰 2 n n線性表線性表l=(a1,a2,a3,ai,an),下列說(shuō)法正確的是,下列說(shuō)法正確的是 a) 每個(gè)元素都有一個(gè)直接前件和直接后件每個(gè)元素都有一個(gè)直接前件和直接后件 b) 線性表中至少要有一個(gè)元素線性表中至少要有一個(gè)元素 c) 表中諸元素的排列順序必須是由小到大或由大到小表中諸元素的排列順序必須是由小到大或由大到小 d) 除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素都有一個(gè)除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素都有一個(gè) 且只有一個(gè)直接前件和直接后件且只有一個(gè)直接前件和直接后件 n線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈

40、式存儲(chǔ)結(jié)構(gòu)分別是線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是 a) 順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu) b) 隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu) c) 隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu) d) 任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu)任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu) n下列敘述中,錯(cuò)誤的是下列敘述中,錯(cuò)誤的是 a) 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān) b) 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率無(wú)關(guān)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率

41、無(wú)關(guān) c) 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的 d) 一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu) n根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程 度,一般將數(shù)據(jù)結(jié)構(gòu)分成度,一般將數(shù)據(jù)結(jié)構(gòu)分成 a) 動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu) b) 緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu) c) 線性結(jié)構(gòu)和非線性結(jié)構(gòu)線性結(jié)構(gòu)和非線性結(jié)構(gòu) d) 內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu) n當(dāng)線性表采用順序存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)存儲(chǔ)時(shí),其主要特點(diǎn)當(dāng)線性表采用順序存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)存儲(chǔ)時(shí),

42、其主要特點(diǎn) 是是 【1】 。 隨機(jī)存取隨機(jī)存取 1.5線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)及其插入與刪除操作線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)及其插入與刪除操作 zhaoqiansun lizhouwu zhengwang / h 存儲(chǔ)地址存儲(chǔ)地址數(shù)據(jù)數(shù)據(jù) 1 7 13 19 25 31 37 43 li qian sun wang wu zhao zheng zhou 指針指針 43 13 1 null 37 7 19 25 31 頭指針頭指針 單鏈表單鏈表 ba p b a p 1-1單鏈表的插入運(yùn)算單鏈表的插入運(yùn)算 x s 在在p所指向的結(jié)點(diǎn)之后插入新的結(jié)點(diǎn)所指向的結(jié)點(diǎn)之后插入新的結(jié)點(diǎn) 1-2單鏈表單鏈表刪除運(yùn)算刪除

43、運(yùn)算 la aian ai-1ai+1 要求要求:刪除結(jié)點(diǎn)刪除結(jié)點(diǎn)ai。 1-3. 循環(huán)鏈表循環(huán)鏈表: 首尾相接的鏈表。首尾相接的鏈表。 將最后一個(gè)結(jié)點(diǎn)的空指針改為指向頭結(jié)點(diǎn),從任一結(jié)點(diǎn)出發(fā)均可將最后一個(gè)結(jié)點(diǎn)的空指針改為指向頭結(jié)點(diǎn),從任一結(jié)點(diǎn)出發(fā)均可 找到其它結(jié)點(diǎn)。找到其它結(jié)點(diǎn)。 a1a2 an a3l. 帶頭結(jié)點(diǎn)的單鏈表帶頭結(jié)點(diǎn)的單鏈表 a1a2ana3l . 循環(huán)單鏈表循環(huán)單鏈表 特點(diǎn)特點(diǎn): 可以從任何一個(gè)結(jié)點(diǎn)開(kāi)始訪問(wèn)鏈表的所有結(jié)點(diǎn)可以從任何一個(gè)結(jié)點(diǎn)開(kāi)始訪問(wèn)鏈表的所有結(jié)點(diǎn). 1-4 雙向鏈表雙向鏈表 在每個(gè)結(jié)點(diǎn)中設(shè)置兩個(gè)指針,一個(gè)指向后繼,一個(gè)在每個(gè)結(jié)點(diǎn)中設(shè)置兩個(gè)指針,一個(gè)指向后繼,一個(gè)

44、指向前驅(qū)??芍苯哟_定一個(gè)結(jié)點(diǎn)的前驅(qū)和后繼結(jié)點(diǎn)??商嶂赶蚯膀?qū)??芍苯哟_定一個(gè)結(jié)點(diǎn)的前驅(qū)和后繼結(jié)點(diǎn)??商?高效率。高效率。 datanextbefore 1.6線性表的應(yīng)用:應(yīng)用最廣的數(shù)據(jù)結(jié)構(gòu)。線性表的應(yīng)用:應(yīng)用最廣的數(shù)據(jù)結(jié)構(gòu)。 .高級(jí)語(yǔ)言中的數(shù)組;高級(jí)語(yǔ)言中的數(shù)組; 計(jì)算機(jī)的文件系統(tǒng);計(jì)算機(jī)的文件系統(tǒng); 計(jì)算機(jī)的目錄系統(tǒng);計(jì)算機(jī)的目錄系統(tǒng); 電話號(hào)碼查詢系統(tǒng)(可采用順序表或單鏈表結(jié)構(gòu)電話號(hào)碼查詢系統(tǒng)(可采用順序表或單鏈表結(jié)構(gòu));); 各種事務(wù)處理(各種事務(wù)處理(可采用順序表或單鏈表結(jié)構(gòu)可采用順序表或單鏈表結(jié)構(gòu)); n鏈表不具有的特點(diǎn)是鏈表不具有的特點(diǎn)是 a) 不必事先估計(jì)存儲(chǔ)空間不必事先估計(jì)存儲(chǔ)

45、空間 b) 可隨機(jī)訪問(wèn)任一元素可隨機(jī)訪問(wèn)任一元素 c) 插入刪除不需要移動(dòng)元素插入刪除不需要移動(dòng)元素d) 所需空間與線性表長(zhǎng)度成正比所需空間與線性表長(zhǎng)度成正比 n用鏈表表示線性表的優(yōu)點(diǎn)是用鏈表表示線性表的優(yōu)點(diǎn)是 a) 便于隨機(jī)存取便于隨機(jī)存取 b) 花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少 c) 便于插入和刪除操作便于插入和刪除操作 d) 數(shù)據(jù)元素的物理順序與邏輯順序相同數(shù)據(jù)元素的物理順序與邏輯順序相同 n長(zhǎng)度為長(zhǎng)度為n的順序存儲(chǔ)線性表中的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元素概當(dāng)在任何位置上插入一個(gè)元素概 率都相等時(shí)率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)為插入一個(gè)元

46、素所需移動(dòng)元素的平均個(gè)數(shù)為 【1】 。 n在單鏈表中,增加頭結(jié)點(diǎn)的目的是在單鏈表中,增加頭結(jié)點(diǎn)的目的是 a) 方便運(yùn)算的實(shí)現(xiàn)方便運(yùn)算的實(shí)現(xiàn) b) 使單鏈表至少有一個(gè)結(jié)點(diǎn)使單鏈表至少有一個(gè)結(jié)點(diǎn) c) 標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置 d) 說(shuō)明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)說(shuō)明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn) 例題講解例題講解 2 n n非空的循環(huán)單鏈表非空的循環(huán)單鏈表head的尾結(jié)點(diǎn)的尾結(jié)點(diǎn)(由由p所指向所指向) ,滿足,滿足 a) p-next=nullb) p=null c) p-next=head d) p=head n循環(huán)鏈表的主要優(yōu)點(diǎn)是循環(huán)鏈表的主要優(yōu)點(diǎn)是 a) 不再需要頭

47、指針了不再需要頭指針了 b) 從表中任一結(jié)點(diǎn)出發(fā)都能訪問(wèn)到整個(gè)鏈表從表中任一結(jié)點(diǎn)出發(fā)都能訪問(wèn)到整個(gè)鏈表 c) 在進(jìn)行插入、刪除運(yùn)算時(shí),能更好的保證鏈表不斷開(kāi)在進(jìn)行插入、刪除運(yùn)算時(shí),能更好的保證鏈表不斷開(kāi) d) 已知某個(gè)結(jié)點(diǎn)的位置后,能夠容易的找到它的直接前件已知某個(gè)結(jié)點(diǎn)的位置后,能夠容易的找到它的直接前件 n當(dāng)循環(huán)隊(duì)列非空且隊(duì)尾指針等于隊(duì)頭指針時(shí),說(shuō)明循環(huán)隊(duì)列已滿,當(dāng)循環(huán)隊(duì)列非空且隊(duì)尾指針等于隊(duì)頭指針時(shí),說(shuō)明循環(huán)隊(duì)列已滿, 不能進(jìn)行入隊(duì)運(yùn)算。這種情況稱為不能進(jìn)行入隊(duì)運(yùn)算。這種情況稱為 【2】 。 n用鏈表表示線性表的突出優(yōu)點(diǎn)是用鏈表表示線性表的突出優(yōu)點(diǎn)是 【1】 。 上溢上溢 插入、刪除靈活插

48、入、刪除靈活 1.7 棧和隊(duì)列棧和隊(duì)列 1.7.1 棧和隊(duì)列的定義棧和隊(duì)列的定義 棧和隊(duì)列棧和隊(duì)列是兩種特殊的線性表,它們是運(yùn)算時(shí)是兩種特殊的線性表,它們是運(yùn)算時(shí) 要受到某些限制的線性表,故也稱為要受到某些限制的線性表,故也稱為限定性的數(shù)據(jù)限定性的數(shù)據(jù) 結(jié)構(gòu)結(jié)構(gòu)。 1 .棧棧 棧棧是限定僅在表尾進(jìn)行插入或刪除操作的線性表。是限定僅在表尾進(jìn)行插入或刪除操作的線性表。 棧頂棧頂表尾。表尾。 棧底棧底表頭。表頭。 空??諚2缓氐目毡?。不含元素的空表。 a1 a2 an 棧底棧底 棧頂棧頂 進(jìn)棧進(jìn)棧 出棧出棧 棧棧s=(a1,a2,an) 后進(jìn)先出后進(jìn)先出 (lifo) 2. 棧的順序存儲(chǔ)結(jié)構(gòu)及其

49、基本運(yùn)算棧的順序存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算 a2 a1 a1 a2 top 用順序存儲(chǔ)結(jié)構(gòu)表示的棧用順序存儲(chǔ)結(jié)構(gòu)表示的棧: 順序棧用一組連續(xù)的存儲(chǔ)單元存放自棧底到棧頂?shù)臄?shù)據(jù)順序棧用一組連續(xù)的存儲(chǔ)單元存放自棧底到棧頂?shù)臄?shù)據(jù) 元素,一般用一維數(shù)組表示,設(shè)置一個(gè)簡(jiǎn)單變量元素,一般用一維數(shù)組表示,設(shè)置一個(gè)簡(jiǎn)單變量top指示棧頂位指示棧頂位 置,稱為置,稱為棧頂指針棧頂指針,它始終指向待插入元素的位置。它始終指向待插入元素的位置。 基本運(yùn)算:基本運(yùn)算: 壓(進(jìn))棧:壓(進(jìn))棧:push 出棧:出棧:pop 讀棧頂元素:讀棧頂元素:gettop 例子:例子: top base e d c b a top bas

50、e c b a base top a base top 空桟:空桟:topbase 非空桟:非空桟:top始終在桟頂元素的后一個(gè)位置始終在桟頂元素的后一個(gè)位置 桟的元素個(gè)數(shù):桟的元素個(gè)數(shù): top-base 上溢上溢 下溢下溢 3. 隊(duì)列隊(duì)列 定義:一種特殊的線性結(jié)構(gòu),限定只能在表的一端進(jìn)行插入,在定義:一種特殊的線性結(jié)構(gòu),限定只能在表的一端進(jìn)行插入,在 表的另一端進(jìn)行刪除的線性表表的另一端進(jìn)行刪除的線性表 。此種結(jié)構(gòu)稱為。此種結(jié)構(gòu)稱為先進(jìn)先出(先進(jìn)先出(fifo) 表表。 a1 , a2 , a3 , a4 , an-1 , an 隊(duì)隊(duì) 列列 示示 意意 圖圖 隊(duì)頭隊(duì)頭 隊(duì)尾隊(duì)尾 e3 e4

51、 (c) (c) e1,e2出隊(duì),出隊(duì),e4入隊(duì)入隊(duì) 隊(duì)隊(duì) 滿滿 rear =3 front e1 e2 e3 (b) rear front (b)e1,e2,e3入隊(duì)入隊(duì) 4.隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算 3 2 1 0 (a) rear=front=-1(隊(duì)空)隊(duì)空) rear front 空隊(duì)列空隊(duì)列: 非空隊(duì)列非空隊(duì)列: 隊(duì)列元素個(gè)數(shù)隊(duì)列元素個(gè)數(shù): rear=front=-1 front始終指向隊(duì)頭元素前一個(gè)位置,而始終指向隊(duì)頭元素前一個(gè)位置,而rear始終始終 指向隊(duì)尾元素的位置指向隊(duì)尾元素的位置 rear-front 循環(huán)隊(duì)列循環(huán)隊(duì)列 基本思想:基本

52、思想:把隊(duì)列設(shè)想為一個(gè)循環(huán)的表,臆想把隊(duì)列設(shè)想為一個(gè)循環(huán)的表,臆想elem0接接 在在elemmaxsize-1之后之后. frontrear maxsize-1 0 1 e3 e4 rear =3 front 00 1 2 3 4 5 front a b c d e f rear 上溢上溢 00 1 2 3 4 5 front rear 下溢下溢 front=rear 隊(duì)滿隊(duì)滿 front=rear 隊(duì)空隊(duì)空 n棧和隊(duì)列的共同特點(diǎn)是棧和隊(duì)列的共同特點(diǎn)是 a)都是先進(jìn)先出都是先進(jìn)先出 b) 都是先進(jìn)后出都是先進(jìn)后出 c) 只允許在端點(diǎn)處插入和刪除元素只允許在端點(diǎn)處插入和刪除元素 d) 沒(méi)有共同

53、點(diǎn)沒(méi)有共同點(diǎn) n如果進(jìn)棧序列為如果進(jìn)棧序列為e1,e2,e3,e4,則可能的出棧序列是,則可能的出棧序列是 a) e3,e1,e4,e2 b) e2,e4,e3,e1 c) e3,e4,e1,e2d) 任意順序任意順序 n一些重要的程序語(yǔ)言一些重要的程序語(yǔ)言(如如c語(yǔ)言和語(yǔ)言和pascal語(yǔ)言語(yǔ)言) 允許過(guò)允許過(guò) 程的遞歸調(diào)用。而實(shí)現(xiàn)遞歸調(diào)用中的存儲(chǔ)分配通常用程的遞歸調(diào)用。而實(shí)現(xiàn)遞歸調(diào)用中的存儲(chǔ)分配通常用 a) 棧棧b) 堆堆 c) 數(shù)組數(shù)組 d) 鏈表鏈表 例題講解例題講解 n棧底至棧頂依次存放元素棧底至棧頂依次存放元素a、b、c、d,在第五個(gè)元素,在第五個(gè)元素e入棧前,入棧前, 棧中元素可

54、以出棧,則出棧序列可能是棧中元素可以出棧,則出棧序列可能是 a) abced b) dcbea c) dbcea d) cdabe n棧通常采用的兩種存儲(chǔ)結(jié)構(gòu)是棧通常采用的兩種存儲(chǔ)結(jié)構(gòu)是 a) 線性存儲(chǔ)結(jié)構(gòu)和鏈表存儲(chǔ)結(jié)構(gòu)線性存儲(chǔ)結(jié)構(gòu)和鏈表存儲(chǔ)結(jié)構(gòu) b) 散列方式和索引方式散列方式和索引方式 c) 鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組 d) 線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu) n棧和隊(duì)列通常采用的存儲(chǔ)結(jié)構(gòu)是棧和隊(duì)列通常采用的存儲(chǔ)結(jié)構(gòu)是 【1】 。 n下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是 a) 線性鏈表線性鏈表 b) 棧棧 c)

55、 循環(huán)鏈表循環(huán)鏈表 d) 順序表順序表 當(dāng)循環(huán)隊(duì)列非空且隊(duì)尾指針等于隊(duì)頭指針時(shí),說(shuō)明循環(huán)隊(duì)列已當(dāng)循環(huán)隊(duì)列非空且隊(duì)尾指針等于隊(duì)頭指針時(shí),說(shuō)明循環(huán)隊(duì)列已 滿,不能進(jìn)行入隊(duì)運(yùn)算。這種情況稱為滿,不能進(jìn)行入隊(duì)運(yùn)算。這種情況稱為 【2】 。 鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組 上溢上溢 n由兩個(gè)棧共享一個(gè)存儲(chǔ)空間的好處是由兩個(gè)棧共享一個(gè)存儲(chǔ)空間的好處是 a) 減少存取時(shí)間,降低下溢發(fā)生的機(jī)率減少存取時(shí)間,降低下溢發(fā)生的機(jī)率 b) 節(jié)省存儲(chǔ)空間,降低上溢發(fā)生的機(jī)率節(jié)省存儲(chǔ)空間,降低上溢發(fā)生的機(jī)率 c) 減少存取時(shí)間,降低上溢發(fā)生的機(jī)率減少存取時(shí)間,降低上溢發(fā)生的機(jī)率 d) 節(jié)省存儲(chǔ)空間,降低下溢發(fā)生的機(jī)

56、率節(jié)省存儲(chǔ)空間,降低下溢發(fā)生的機(jī)率 n下列關(guān)于棧的敘述中正確的是下列關(guān)于棧的敘述中正確的是 )在棧中只能插入數(shù)據(jù))在棧中只能插入數(shù)據(jù) b)在棧中只能刪除數(shù)據(jù))在棧中只能刪除數(shù)據(jù) c)棧是先進(jìn)先出的線性表)棧是先進(jìn)先出的線性表 d)棧是后進(jìn)先出的線性表)棧是后進(jìn)先出的線性表 n下列關(guān)于隊(duì)列的敘述中正確的是下列關(guān)于隊(duì)列的敘述中正確的是 )在隊(duì)列中只能插入數(shù)據(jù))在隊(duì)列中只能插入數(shù)據(jù) b)在隊(duì)列中只能刪除數(shù)據(jù))在隊(duì)列中只能刪除數(shù)據(jù) c)隊(duì)列是先進(jìn)先出的線性表)隊(duì)列是先進(jìn)先出的線性表 d)隊(duì)列是后進(jìn)先出的線性表)隊(duì)列是后進(jìn)先出的線性表 1.6.1 樹(shù)的定義樹(shù)的定義 由一個(gè)或多個(gè)結(jié)點(diǎn)組成的有限集合由一個(gè)或

57、多個(gè)結(jié)點(diǎn)組成的有限集合。僅有一個(gè)根結(jié)點(diǎn),結(jié)僅有一個(gè)根結(jié)點(diǎn),結(jié) 點(diǎn)間有明顯的層次結(jié)構(gòu)關(guān)系。點(diǎn)間有明顯的層次結(jié)構(gòu)關(guān)系。 a c g t2 d h i t3 j m b e l k t1 f 現(xiàn)實(shí)世界中,能用樹(shù)的結(jié)構(gòu)表示的例子:現(xiàn)實(shí)世界中,能用樹(shù)的結(jié)構(gòu)表示的例子: 學(xué)校的行政關(guān)系、書(shū)的層次結(jié)構(gòu)、人類(lèi)的家族血緣關(guān)系等。學(xué)校的行政關(guān)系、書(shū)的層次結(jié)構(gòu)、人類(lèi)的家族血緣關(guān)系等。 1.6 樹(shù) 介紹幾個(gè)概念:介紹幾個(gè)概念: 結(jié)點(diǎn)結(jié)點(diǎn)(node):樹(shù)中的元素,包含數(shù)據(jù)項(xiàng)及若干指向其):樹(shù)中的元素,包含數(shù)據(jù)項(xiàng)及若干指向其 子樹(shù)的分支。子樹(shù)的分支。 結(jié)點(diǎn)的度結(jié)點(diǎn)的度(degree):結(jié)點(diǎn)擁有的子樹(shù)數(shù)。):結(jié)點(diǎn)擁有的子樹(shù)

58、數(shù)。 結(jié)點(diǎn)的層次:結(jié)點(diǎn)的層次:從根結(jié)點(diǎn)開(kāi)始算起,根為第一層。從根結(jié)點(diǎn)開(kāi)始算起,根為第一層。 葉子葉子(leaf):度為零的結(jié)點(diǎn),也稱端結(jié)點(diǎn)。):度為零的結(jié)點(diǎn),也稱端結(jié)點(diǎn)。 孩子孩子(child):結(jié)點(diǎn)子樹(shù)的根稱為該結(jié)點(diǎn)的孩子結(jié)點(diǎn)。):結(jié)點(diǎn)子樹(shù)的根稱為該結(jié)點(diǎn)的孩子結(jié)點(diǎn)。 兄弟兄弟(sibling):同一雙親的孩子。):同一雙親的孩子。 雙親雙親(parent):孩子結(jié)點(diǎn)的上層結(jié)點(diǎn),稱為這些結(jié)點(diǎn)的):孩子結(jié)點(diǎn)的上層結(jié)點(diǎn),稱為這些結(jié)點(diǎn)的 雙親。雙親。 樹(shù)的深度樹(shù)的深度(depth): 樹(shù)中結(jié)點(diǎn)的最大層次數(shù)。樹(shù)中結(jié)點(diǎn)的最大層次數(shù)。 樹(shù)的度:樹(shù)的度:結(jié)點(diǎn)所具有的最大的度結(jié)點(diǎn)所具有的最大的度. 森林森林(

59、forest):):m棵互不相交的樹(shù)的集合??没ゲ幌嘟坏臉?shù)的集合。 a c g d h i j m b e l k t1 f 1.6.2 二叉樹(shù)二叉樹(shù) (binary tree) 1 、二叉樹(shù)的定義及其性質(zhì)、二叉樹(shù)的定義及其性質(zhì) (1) 二叉樹(shù)的定義二叉樹(shù)的定義 二叉樹(shù)的五種基本形態(tài)二叉樹(shù)的五種基本形態(tài) 二叉樹(shù)一種特殊的樹(shù)形結(jié)構(gòu),特點(diǎn)是樹(shù)中每個(gè)結(jié)點(diǎn)最多只能二叉樹(shù)一種特殊的樹(shù)形結(jié)構(gòu),特點(diǎn)是樹(shù)中每個(gè)結(jié)點(diǎn)最多只能 有兩棵子樹(shù)有兩棵子樹(shù)(即二叉樹(shù)中不存在度大于即二叉樹(shù)中不存在度大于2的結(jié)點(diǎn)的結(jié)點(diǎn)),且子樹(shù)有左右,且子樹(shù)有左右 之分,次序不能顛倒。之分,次序不能顛倒。 空二叉樹(shù)空二叉樹(shù) 僅有僅有 根結(jié)點(diǎn)

60、根結(jié)點(diǎn) 右子樹(shù)右子樹(shù) 為空為空 左子樹(shù)左子樹(shù) 為空為空 左右子樹(shù)左右子樹(shù) 均非空均非空 二叉二叉樹(shù)樹(shù)是是n(nn(n 0)0)個(gè)結(jié)點(diǎn)的有限集合。它或?yàn)榭諗?shù)個(gè)結(jié)點(diǎn)的有限集合。它或?yàn)榭諗?shù) (n=0),(n=0),或由一個(gè)根結(jié)點(diǎn)和兩棵分別稱為根的左子樹(shù)和或由一個(gè)根結(jié)點(diǎn)和兩棵分別稱為根的左子樹(shù)和 右子樹(shù)的互不相交的二叉樹(shù)組成。右子樹(shù)的互不相交的二叉樹(shù)組成。 特別要注意:特別要注意:二叉二叉樹(shù)樹(shù)不是不是一般樹(shù)的特殊情況一般樹(shù)的特殊情況, ,而是而是 另一種樹(shù)形結(jié)構(gòu)另一種樹(shù)形結(jié)構(gòu). . a aa a b bb b 兩棵不同的二叉兩棵不同的二叉樹(shù)樹(shù) a b 一一棵棵樹(shù)樹(shù) 性質(zhì)性質(zhì)1:二叉樹(shù)的第二叉樹(shù)的第i層

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論