計算機2級C公共基礎(chǔ)知識_第1頁
計算機2級C公共基礎(chǔ)知識_第2頁
計算機2級C公共基礎(chǔ)知識_第3頁
計算機2級C公共基礎(chǔ)知識_第4頁
計算機2級C公共基礎(chǔ)知識_第5頁
已閱讀5頁,還剩264頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2021/3/10講解:XX1 計算機等級考試計算機等級考試 公共基礎(chǔ)知識公共基礎(chǔ)知識 講解:XX第2頁 2021/3/10 第2頁 計算機二級考試公共基礎(chǔ)知識計算機二級考試公共基礎(chǔ)知識大綱大綱 q 數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)結(jié)構(gòu)與算法 q 程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ) q 軟件工程基礎(chǔ)軟件工程基礎(chǔ) q 數(shù)據(jù)庫設(shè)計基礎(chǔ)數(shù)據(jù)庫設(shè)計基礎(chǔ) 這四個方面在試卷中出現(xiàn)的情況是:選擇題10個(20分),填空題5個 (10分),總分值占到了試卷卷面分的30,是一個不小的比例。 講解:XX第3頁 2021/3/10 第3頁 計算機二級考試公共基礎(chǔ)知識試卷分析計算機二級考試公共基礎(chǔ)知識試卷分析 章節(jié)章節(jié) 考試時間考試時間 數(shù)

2、據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) 與算法與算法 程序設(shè)計程序設(shè)計 基礎(chǔ)基礎(chǔ) 軟件工程軟件工程 基礎(chǔ)基礎(chǔ) 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計 基礎(chǔ)基礎(chǔ) 2007年4月10分2分10分8分 2007年9月12分4分8分6分 2008年4月10分2分8分10分 2008年9月10分2分8分10分 2009年3月10分2分8分10分 2009年9月10分2分8分10分 2010年3月10分0分10分10分 講解:XX第4頁 2021/3/10 第4頁 算法的基算法的基 本概念本概念 2.2.算法復(fù)雜算法復(fù)雜 度的概念和度的概念和 意義意義 數(shù)據(jù)結(jié)構(gòu)的概念數(shù)據(jù)結(jié)構(gòu)的概念 線性表線性表 棧和隊列棧和隊列 樹與二叉樹樹與二叉樹 查找技術(shù)查

3、找技術(shù) 排序技術(shù)排序技術(shù) 對于等級考試,這個部分的考核對于等級考試,這個部分的考核重點主要重點主要在在算法和數(shù)據(jù)結(jié)構(gòu)的基本概算法和數(shù)據(jù)結(jié)構(gòu)的基本概 念念、二叉樹二叉樹(遍歷、結(jié)點),遍歷、結(jié)點),還有還有排序和查找排序和查找考試中也經(jīng)常會涉及到??荚囍幸步?jīng)常會涉及到。 講解:XX第5頁 2021/3/10 第5頁 算法的定義算法的定義 算法是程序設(shè)計的核心算法是程序設(shè)計的核心 算法是在有限步驟內(nèi)求解某一問題所使用的一組定義明確的算法是在有限步驟內(nèi)求解某一問題所使用的一組定義明確的 規(guī)則。通俗點說,就是計算機規(guī)則。通俗點說,就是計算機解題的過程解題的過程( (計算的方法計算的方法) )。在。在

4、這個過程中,無論是形成解題思路這個過程中,無論是形成解題思路( (推理實現(xiàn)的算法推理實現(xiàn)的算法) )還是編還是編 寫程序?qū)懗绦? (操作實現(xiàn)的算法操作實現(xiàn)的算法) ),都是在實施某種算法。,都是在實施某種算法。 例:例: n個數(shù)從大到小進(jìn)行排序。個數(shù)從大到小進(jìn)行排序。 有多種排序方法有多種排序方法 ,常用的有冒泡排序、選擇排序等。,常用的有冒泡排序、選擇排序等。 講課講課 說課說課 講解:XX第6頁 2021/3/10 第6頁 2 . 算法的基本特征算法的基本特征 一個算法應(yīng)該具有以下五個重要的特征:一個算法應(yīng)該具有以下五個重要的特征: n 有窮性有窮性 n 確定性確定性 n 輸入輸入 n 輸

5、出輸出 n 可行性可行性 一個算法必須保證執(zhí)行有限步之后結(jié)束; 算法的每一步驟必須有確切的定義; 一個算法有0個或多個輸入,以刻畫運算對象的初始 情況,所謂0個輸入是指算法本身定出了初始條件; 一個算法有一個或多個輸出,以反映對輸入數(shù)據(jù)加 工后的結(jié)果。沒有輸出的算法是毫無意義的; 算法原則上能夠精確地運行,而且人們用筆和 紙做有限次運算后即可完成 擁有足夠的情報擁有足夠的情報 講解:XX第7頁 2021/3/10 第7頁 u 算法與計算機程序算法與計算機程序 算法算法_是一組邏輯步驟是一組邏輯步驟 程序程序用計算機語言描述的算法用計算機語言描述的算法 INPUT r S=3.14 * r*r

6、PTINT S 開始開始 輸入輸入R R S=3.14 * R*R 輸出輸出S S 結(jié)束結(jié)束 問題: 輸入園的半徑, 計算園的面積 一個算法的表示需要使用一些語言形式。一個算法的表示需要使用一些語言形式。 傳統(tǒng)的算法傳統(tǒng)的算法-圖形法,如圖形法,如“流程圖流程圖”和和N-S圖圖 目前常用的方法目前常用的方法-使用偽碼描述算法。使用偽碼描述算法。 講解:XX第8頁 2021/3/10 第8頁 冒泡排序的方法:冒泡排序的方法: 1.1.掃描整個線性表,逐次對相掃描整個線性表,逐次對相 鄰的兩個元素進(jìn)行比較,若為鄰的兩個元素進(jìn)行比較,若為 逆序,則交換;第一趟掃描的逆序,則交換;第一趟掃描的 結(jié)果使

7、最大的元素排到表的最結(jié)果使最大的元素排到表的最 后后 ; 2.2.除最后一個元素,對剩余的除最后一個元素,對剩余的 元素重復(fù)上述過程,將次大的元素重復(fù)上述過程,將次大的 數(shù)排到表的倒數(shù)第二個位置;數(shù)排到表的倒數(shù)第二個位置; 3.3.重復(fù)上述過程;重復(fù)上述過程; 對于長度為對于長度為n n的線性表,冒泡排的線性表,冒泡排 序需要對表掃描序需要對表掃描n-1n-1遍。遍。 算法舉例:算法舉例:n個數(shù)排序個數(shù)排序 講解:XX第9頁 2021/3/10 第9頁 4. 算法的兩個基本要素:算法的兩個基本要素: n 算術(shù)運算算術(shù)運算 n 關(guān)系運算關(guān)系運算 n 邏輯運算邏輯運算 n 數(shù)據(jù)傳輸數(shù)據(jù)傳輸 n 順

8、序順序 n 選擇選擇 n 循環(huán)循環(huán) u 一是對數(shù)據(jù)對象的運算和操作; u 二是算法的控制結(jié)構(gòu)。 u算法基本設(shè)計方法:列舉法、歸納法、遞推、遞 歸、減斗遞推技術(shù)、回溯法 講解:XX第10頁 2021/3/10 第10頁 評價一個算法優(yōu)劣的主要標(biāo)準(zhǔn)是算法的執(zhí)行效率和存儲需求:評價一個算法優(yōu)劣的主要標(biāo)準(zhǔn)是算法的執(zhí)行效率和存儲需求: n 時間復(fù)雜度:執(zhí)行這個算法所需要的時間復(fù)雜度:執(zhí)行這個算法所需要的計算工作量計算工作量 一般可以用算法在執(zhí)行過程中所需基本運算的執(zhí)行次數(shù)來度量計算工作量一般可以用算法在執(zhí)行過程中所需基本運算的執(zhí)行次數(shù)來度量計算工作量 n 空間復(fù)雜度:執(zhí)行這個算法所需要的空間復(fù)雜度:執(zhí)行

9、這個算法所需要的內(nèi)存空間內(nèi)存空間 算法在執(zhí)行過程中臨時占用的存儲空間算法在執(zhí)行過程中臨時占用的存儲空間 時間復(fù)雜度時間復(fù)雜度它大致等于計算機它大致等于計算機執(zhí)行一種簡單操作所需的平均時間執(zhí)行一種簡單操作所需的平均時間與算法與算法 中進(jìn)行中進(jìn)行簡單操作的次數(shù)的乘積簡單操作的次數(shù)的乘積。 一個算法在計算機存儲器上所占用的存儲空間,包括一個算法在計算機存儲器上所占用的存儲空間,包括存儲算法本身所占用存儲算法本身所占用 的存儲空間的存儲空間、算法中的輸入輸出數(shù)據(jù)所占用的存儲空間算法中的輸入輸出數(shù)據(jù)所占用的存儲空間和和算法在運行過程中算法在運行過程中 臨時占用的存儲空間臨時占用的存儲空間這三個部分這三個

10、部分 講解:XX第11頁 2021/3/10 第11頁 (1) 在計算機中,算法是指在計算機中,算法是指_。 A. 查詢方法查詢方法 B. 加工方法加工方法 C. 解題方案的準(zhǔn)確而完整的描述解題方案的準(zhǔn)確而完整的描述 D. 排序方法排序方法 (2)下列敘述中正確的是下列敘述中正確的是 (07年年4月月) A)算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān) B)算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量 C)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的 D)算法

11、的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān) (3)算法的有窮性是指算法的有窮性是指 (08年年4月月) A)算法程序的運行時間是有限的)算法程序的運行時間是有限的 B)算法程序所處理的數(shù)據(jù)量是有限的)算法程序所處理的數(shù)據(jù)量是有限的 C)算法程序的長度是有限的)算法程序的長度是有限的 D)算法只能被有限的用戶使用)算法只能被有限的用戶使用 (c) (B) 算法習(xí)題: (A) 講解:XX第12頁 2021/3/10 第12頁 (4) 算法的時問復(fù)雜度是指算法的時問復(fù)雜度是指 (2010年年3月月) A)算法的執(zhí)行時間算法的執(zhí)行時間 B)算法所處理的數(shù)據(jù)量算法所處理的數(shù)據(jù)量

12、 C)算法程序中的語句或指令條數(shù)算法程序中的語句或指令條數(shù) D)算法在執(zhí)行過程中所需要的基本運算次數(shù)算法在執(zhí)行過程中所需要的基本運算次數(shù) (5) 算法的空間復(fù)雜度是指算法的空間復(fù)雜度是指 (09年年9月月) A)算法在執(zhí)行過程中所需要的計算機存儲空間)算法在執(zhí)行過程中所需要的計算機存儲空間 B)算法所處理的數(shù)據(jù)量)算法所處理的數(shù)據(jù)量 C)算法程序中的語句或指令條數(shù))算法程序中的語句或指令條數(shù) D)算法在執(zhí)行過程中所需要的臨時工作單元數(shù))算法在執(zhí)行過程中所需要的臨時工作單元數(shù) (6) 下列敘述中正確的是下列敘述中正確的是 (06年年9月月) A)一個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定大)一

13、個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定大 B)一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小)一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小 C)一個算法的時間復(fù)雜度大,則其空間復(fù)雜度必定?。┮粋€算法的時間復(fù)雜度大,則其空間復(fù)雜度必定小 D)上述三種說法都不對)上述三種說法都不對 (D) 計算工作量 (A) (D) 講解:XX第13頁 2021/3/10 u 算法的時間復(fù)雜度是指算法的時間復(fù)雜度是指 A) 執(zhí)行算法程序所需要的時間執(zhí)行算法程序所需要的時間 B) 算法程序的長度算法程序的長度 C) 算法執(zhí)行過程中所需要的基本運算次數(shù)算法執(zhí)行過程中所需要的基本運算次數(shù) D) 算法程序中的指令條數(shù)算

14、法程序中的指令條數(shù) u 算法的基本特征是可行性、確定性、算法的基本特征是可行性、確定性、 【1】 和擁有足夠的情報。和擁有足夠的情報。 u 算法的空間復(fù)雜度是指算法的空間復(fù)雜度是指 A) 算法程序的長度算法程序的長度 B) 算法程序中的指令條數(shù)算法程序中的指令條數(shù) C) 算法程序所占的存儲空間算法程序所占的存儲空間 D) 執(zhí)行過程中所需要的存儲空間執(zhí)行過程中所需要的存儲空間 u 在計算機中,算法是指在計算機中,算法是指 A) 加工方法加工方法B) 解題方案的準(zhǔn)確而完整的描述解題方案的準(zhǔn)確而完整的描述 C) 排序方法排序方法D) 查詢方法查詢方法 例題講解例題講解 有窮性有窮性 講解:XX第14

15、頁 2021/3/10 u 算法分析的目的是算法分析的目的是 A) 找出數(shù)據(jù)結(jié)構(gòu)的合理性找出數(shù)據(jù)結(jié)構(gòu)的合理性 B) 找出算法中輸入和輸找出算法中輸入和輸 出之間的關(guān)系出之間的關(guān)系 C) 分析算法的易懂性和可靠性分析算法的易懂性和可靠性 D) 分析算法的效率分析算法的效率 以求改進(jìn)以求改進(jìn) u 算法的工作量大小和實現(xiàn)算法所需的存儲單元多少算法的工作量大小和實現(xiàn)算法所需的存儲單元多少 分別稱為算法的分別稱為算法的 【1】 。 時間復(fù)雜度和空間復(fù)雜度時間復(fù)雜度和空間復(fù)雜度 講解:XX第15頁 2021/3/10 第15頁 計算機在進(jìn)行數(shù)據(jù)處理時,實際需要處理的數(shù)據(jù)元素一般有計算機在進(jìn)行數(shù)據(jù)處理時,實

16、際需要處理的數(shù)據(jù)元素一般有 很多,而這些大量的數(shù)據(jù)元素都需要存放在計算機中,因此,大量很多,而這些大量的數(shù)據(jù)元素都需要存放在計算機中,因此,大量 的的數(shù)據(jù)元素在計算機中如何組織,以便提高數(shù)據(jù)處理的效率,并且數(shù)據(jù)元素在計算機中如何組織,以便提高數(shù)據(jù)處理的效率,并且 節(jié)省計算機的存儲空間,節(jié)省計算機的存儲空間,這是進(jìn)行數(shù)據(jù)處理的關(guān)鍵問題。這是進(jìn)行數(shù)據(jù)處理的關(guān)鍵問題。 程序程序=算法算法+數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合。數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合。 一般來說,人們不會同時處理特征完全不同且互相之間沒有任何關(guān)系 的各類數(shù)據(jù)元素,對于具有不同特征的數(shù)據(jù)元素總是分別進(jìn)

17、行處理。 一般情況下,在具有相同特征的數(shù)據(jù)元素集合中,各個數(shù)據(jù)一般情況下,在具有相同特征的數(shù)據(jù)元素集合中,各個數(shù)據(jù) 元素之間存在有某種關(guān)系(即元素之間存在有某種關(guān)系(即聯(lián)系)聯(lián)系),這種關(guān)系反映了該集,這種關(guān)系反映了該集 合中的數(shù)據(jù)元素所固有的一種結(jié)構(gòu)。合中的數(shù)據(jù)元素所固有的一種結(jié)構(gòu)。 超市的物品如何超市的物品如何 存放才好找且節(jié)存放才好找且節(jié) 省空間呢?省空間呢? 講解:XX第16頁 2021/3/10 第16頁 二二. 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合。數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合。 數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)和數(shù)據(jù)之間關(guān)系的一門學(xué)科,它數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)和數(shù)據(jù)之

18、間關(guān)系的一門學(xué)科,它 包括三個方面。包括三個方面。 (1)數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,)數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系, 即數(shù)據(jù)的邏輯結(jié)構(gòu);即數(shù)據(jù)的邏輯結(jié)構(gòu); (2)在對數(shù)據(jù)進(jìn)行處理時,各數(shù)據(jù)元素在計算機中)在對數(shù)據(jù)進(jìn)行處理時,各數(shù)據(jù)元素在計算機中 的存儲關(guān)系,即數(shù)據(jù)的存儲結(jié)構(gòu);的存儲關(guān)系,即數(shù)據(jù)的存儲結(jié)構(gòu); (3)對各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運算。)對各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運算。 講解:XX第17頁 2021/3/10 第17頁 u 1. 邏輯結(jié)構(gòu)邏輯結(jié)構(gòu) 數(shù)據(jù)的邏輯結(jié)構(gòu)是指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)數(shù)據(jù)的邏輯結(jié)構(gòu)是指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié) 構(gòu)。構(gòu)。 數(shù)據(jù)的邏輯結(jié)

19、構(gòu)包含:數(shù)據(jù)的邏輯結(jié)構(gòu)包含: (1)表示數(shù)據(jù)元素的信息;)表示數(shù)據(jù)元素的信息; (2)表示各數(shù)據(jù)元素之間的前后件關(guān)系。)表示各數(shù)據(jù)元素之間的前后件關(guān)系。 例:例: 1. 一年四季的數(shù)據(jù)結(jié)構(gòu)一年四季的數(shù)據(jù)結(jié)構(gòu) B=(D,R) D=春,夏,秋,冬春,夏,秋,冬 R=(春,夏春,夏) ,(夏,秋夏,秋),(秋,冬秋,冬) 2. 家庭成員的數(shù)據(jù)結(jié)構(gòu)家庭成員的數(shù)據(jù)結(jié)構(gòu) B=(D,R) D=父親,兒子,女兒父親,兒子,女兒 R=(父親,兒子父親,兒子) ,(父親,女兒父親,女兒) 春夏秋冬 數(shù)據(jù)結(jié)構(gòu)的圖形表示數(shù)據(jù)結(jié)構(gòu)的圖形表示 父親 兒子女兒 講解:XX第18頁 2021/3/10 第18頁 u常見的常見

20、的邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)有:有: 線性結(jié)構(gòu)、樹形結(jié)構(gòu)和圖形結(jié)構(gòu)。線性結(jié)構(gòu)、樹形結(jié)構(gòu)和圖形結(jié)構(gòu)。 線性結(jié)構(gòu)線性結(jié)構(gòu) 樹形結(jié)構(gòu)樹形結(jié)構(gòu) 圖形結(jié)構(gòu)圖形結(jié)構(gòu) u 線性結(jié)構(gòu)線性結(jié)構(gòu) 結(jié)構(gòu)中的每個元素之間存在結(jié)構(gòu)中的每個元素之間存在一個對一個的關(guān)系一個對一個的關(guān)系; u 樹形結(jié)構(gòu)樹形結(jié)構(gòu) 結(jié)構(gòu)中的每個元素之間存在結(jié)構(gòu)中的每個元素之間存在一個對多個的關(guān)系一個對多個的關(guān)系; u 圖形結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)圖形結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu) 結(jié)構(gòu)中的每個元素之間存在結(jié)構(gòu)中的每個元素之間存在多個對多個的關(guān)系多個對多個的關(guān)系。 其中,其中,樹形結(jié)構(gòu)和圖形結(jié)構(gòu)統(tǒng)稱為非線形結(jié)構(gòu)樹形結(jié)構(gòu)和圖形結(jié)構(gòu)統(tǒng)稱為非線形結(jié)構(gòu)。數(shù)據(jù)的邏輯結(jié)構(gòu)可以。數(shù)據(jù)的邏輯結(jié)構(gòu)可

21、以 用二元關(guān)系表示,也可以直觀地用圖形來表示。用二元關(guān)系表示,也可以直觀地用圖形來表示。 講解:XX第19頁 2021/3/10 第19頁 u 2. 存儲結(jié)構(gòu)(物理結(jié)構(gòu)存儲結(jié)構(gòu)(物理結(jié)構(gòu)) 計算機在實際進(jìn)行數(shù)據(jù)處理時,被處理的各數(shù)據(jù)元素總是被存放在計計算機在實際進(jìn)行數(shù)據(jù)處理時,被處理的各數(shù)據(jù)元素總是被存放在計 算機的存儲空間中,并且,各數(shù)據(jù)元素在計算機存儲空間中的位置與算機的存儲空間中,并且,各數(shù)據(jù)元素在計算機存儲空間中的位置與 它們的邏輯關(guān)系不一定是相同的,而且一般也不可能相同。它們的邏輯關(guān)系不一定是相同的,而且一般也不可能相同。 如:如:一年四季 家庭成員 計算機存儲空間怎樣存放? 存儲結(jié)

22、構(gòu)指數(shù)據(jù)結(jié)構(gòu)在計算機存儲空間中的具體實現(xiàn)。存儲結(jié)構(gòu)指數(shù)據(jù)結(jié)構(gòu)在計算機存儲空間中的具體實現(xiàn)。 常見的存儲結(jié)構(gòu)有:常見的存儲結(jié)構(gòu)有: n 順序存儲結(jié)構(gòu)順序存儲結(jié)構(gòu) n 鏈?zhǔn)酱鎯Y(jié)構(gòu)鏈?zhǔn)酱鎯Y(jié)構(gòu) n 索引存儲結(jié)構(gòu)索引存儲結(jié)構(gòu) 只抽象地反映數(shù)據(jù)元素之間的關(guān)系的結(jié)構(gòu),只抽象地反映數(shù)據(jù)元素之間的關(guān)系的結(jié)構(gòu), 而不管其存儲方式的數(shù)據(jù)結(jié)構(gòu)稱為邏輯結(jié)而不管其存儲方式的數(shù)據(jù)結(jié)構(gòu)稱為邏輯結(jié) 構(gòu)。構(gòu)。 一種一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要表示成一種或數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要表示成一種或 多種存儲結(jié)構(gòu)多種存儲結(jié)構(gòu)。 講解:XX第20頁 2021/3/10 第20頁 u 3. 數(shù)據(jù)的運算數(shù)據(jù)的運算 n 檢索檢索 n 插入插入 n 刪

23、除刪除 n 更新更新 n 排序排序 通常,一個數(shù)據(jù)結(jié)構(gòu)中的元素結(jié)點可能是動態(tài)變化的。根據(jù)需要通常,一個數(shù)據(jù)結(jié)構(gòu)中的元素結(jié)點可能是動態(tài)變化的。根據(jù)需要 或在處理過程中,可以在一個數(shù)據(jù)結(jié)構(gòu)中增加一個新結(jié)點(插入運或在處理過程中,可以在一個數(shù)據(jù)結(jié)構(gòu)中增加一個新結(jié)點(插入運 算),也可以刪除某個結(jié)點(刪除運算),除此之外,對數(shù)據(jù)結(jié)構(gòu)算),也可以刪除某個結(jié)點(刪除運算),除此之外,對數(shù)據(jù)結(jié)構(gòu) 的運算還有查找、分類、合并、分解、復(fù)制和修改。的運算還有查找、分類、合并、分解、復(fù)制和修改。 在對數(shù)據(jù)結(jié)構(gòu)的處理過程中,不僅數(shù)據(jù)結(jié)構(gòu)中結(jié)點的個數(shù)在動態(tài)在對數(shù)據(jù)結(jié)構(gòu)的處理過程中,不僅數(shù)據(jù)結(jié)構(gòu)中結(jié)點的個數(shù)在動態(tài) 變化,

24、而且,各數(shù)據(jù)元素之間的關(guān)系也有可能在動態(tài)地變化。變化,而且,各數(shù)據(jù)元素之間的關(guān)系也有可能在動態(tài)地變化。如: 無序表變有序表 數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)和數(shù)據(jù)之?dāng)?shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)和數(shù)據(jù)之 間關(guān)系的一門學(xué)科,研究以下三間關(guān)系的一門學(xué)科,研究以下三 方面內(nèi)容:方面內(nèi)容: n 數(shù)據(jù)的邏輯結(jié)構(gòu)數(shù)據(jù)的邏輯結(jié)構(gòu) n 數(shù)據(jù)的存儲結(jié)構(gòu)數(shù)據(jù)的存儲結(jié)構(gòu) n 數(shù)據(jù)的運算數(shù)據(jù)的運算 父親 兒子女兒 2021/3/10 講解:XX第第21 21|92|92頁頁第第21 21|92|92頁頁 常見的數(shù)據(jù)結(jié)構(gòu)常見的數(shù)據(jù)結(jié)構(gòu) u 數(shù)據(jù)結(jié)構(gòu)分類數(shù)據(jù)結(jié)構(gòu)分類 線性結(jié)構(gòu)與非線性結(jié)構(gòu)線性結(jié)構(gòu)與非線性結(jié)構(gòu)兩大類型 線性結(jié)構(gòu):一個非空的數(shù)據(jù)結(jié)構(gòu)若

25、滿足下面的兩個條件,則一個非空的數(shù)據(jù)結(jié)構(gòu)若滿足下面的兩個條件,則 這種數(shù)據(jù)結(jié)構(gòu)即為這種數(shù)據(jù)結(jié)構(gòu)即為。 有且僅有一個根結(jié)點;有且僅有一個根結(jié)點; 除第一個結(jié)點外,每一個結(jié)點最多有一個前件;除第一個結(jié)點外,每一個結(jié)點最多有一個前件; 除最后一個結(jié)點外,每一個結(jié)點最多有一個后件。除最后一個結(jié)點外,每一個結(jié)點最多有一個后件。 常見的線性結(jié)構(gòu)有:常見的線性結(jié)構(gòu)有: 2021/3/10 講解:XX第第2222|92|92頁頁第第2222|92|92頁頁 a1a2a5a3a4HEAD 319510 線性鏈表的邏輯狀態(tài)線性鏈表的邏輯狀態(tài) 常見的非線性結(jié)構(gòu)有樹、常見的非線性結(jié)構(gòu)有樹、 非線性結(jié)構(gòu)一個數(shù)據(jù)結(jié)構(gòu)不是

26、線性結(jié)構(gòu)。一個數(shù)據(jù)結(jié)構(gòu)不是線性結(jié)構(gòu)。 講解:XX第23頁 2021/3/10 第23頁 線性表是由線性表是由n(n0)個數(shù)據(jù)元素)個數(shù)據(jù)元素 a1,a2,ai,an組成的一個有限序列。組成的一個有限序列。 春春 夏夏 秋秋 冬冬 記錄記錄1 02011001 張三張三 男男 記錄記錄2 02011003 李四李四 女女 記錄記錄3 記錄記錄4 講解:XX第24頁 2021/3/10 第24頁 特點:特點: 順序存儲結(jié)構(gòu)把順序存儲結(jié)構(gòu)把邏輯上相邏輯上相 鄰鄰的數(shù)據(jù)元素存儲在的數(shù)據(jù)元素存儲在物理上相鄰物理上相鄰 的存儲單元里,順序存儲結(jié)構(gòu)的存儲單元里,順序存儲結(jié)構(gòu)只只 存儲結(jié)點的值存儲結(jié)點的值,不

27、存儲結(jié)點間的,不存儲結(jié)點間的 關(guān)系,結(jié)點間的關(guān)系由存儲單元關(guān)系,結(jié)點間的關(guān)系由存儲單元 的鄰接關(guān)系來體現(xiàn)。的鄰接關(guān)系來體現(xiàn)。 a1 a2 ai an 存儲地址存儲地址 2000 2004 2000+4*(i-1) 2000+4*(n-1) 占占4個字節(jié)個字節(jié) 第i個數(shù)的地址第一個數(shù)的地址L為該類型數(shù)所占的字節(jié) 線性表的存儲結(jié)構(gòu)有兩種:線性表的存儲結(jié)構(gòu)有兩種: u 順序存儲結(jié)構(gòu)順序存儲結(jié)構(gòu) u 鏈?zhǔn)酱鎯Y(jié)構(gòu)鏈?zhǔn)酱鎯Y(jié)構(gòu) 講解:XX第25頁 2021/3/10 第25頁 u 順序表的插入運算順序表的插入運算 u 順序表的刪除運算順序表的刪除運算 在線性表順序存儲情況下,要插入或刪除一個元在線性表順

28、序存儲情況下,要插入或刪除一個元 素,都會由于數(shù)據(jù)元素的移動而消耗大量的處理時間,素,都會由于數(shù)據(jù)元素的移動而消耗大量的處理時間, 所以這種存儲方式對于小線性表或其中數(shù)據(jù)元素不經(jīng)所以這種存儲方式對于小線性表或其中數(shù)據(jù)元素不經(jīng) 常變動的線性表是合適的。常變動的線性表是合適的。 線性表的順序存儲結(jié)構(gòu)稱為順序表。線性表的順序存儲結(jié)構(gòu)稱為順序表。 講解:XX第26頁 2021/3/10 第26頁 插入運算插入運算 ai-1.a2a1 alength ai+1ai x ai-1.a2a1 alength ai+1ai X 插入算法的分析插入算法的分析: : 假設(shè)線性表中含有假設(shè)線性表中含有n n個數(shù)據(jù)元

29、素,在進(jìn)行插入操作時,若假個數(shù)據(jù)元素,在進(jìn)行插入操作時,若假 定在定在n+1n+1個位置上插入元素的可能性均等,則平均移動元素的個數(shù)為:個位置上插入元素的可能性均等,則平均移動元素的個數(shù)為: 1n 1i is 2 n 1)i(n 1n 1 E 講解:XX第27頁 2021/3/10 第27頁 刪除運算刪除運算 ai-1.a2a1 alength ai+1ai ai-1.a2a1 alength ai+1 刪除算法的分析刪除算法的分析: : 在進(jìn)行刪除操作時,若假定刪除每個元素的可能性均等,則在進(jìn)行刪除操作時,若假定刪除每個元素的可能性均等,則 平均移動元素的個數(shù)為:平均移動元素的個數(shù)為: 總結(jié)

30、總結(jié): : 順序存儲結(jié)構(gòu)表示的線性表,在做插入或刪除操作時,平均需要移順序存儲結(jié)構(gòu)表示的線性表,在做插入或刪除操作時,平均需要移 動大約一半的數(shù)據(jù)元素。當(dāng)線性表的數(shù)據(jù)元素量較大,并且經(jīng)常要對其做動大約一半的數(shù)據(jù)元素。當(dāng)線性表的數(shù)據(jù)元素量較大,并且經(jīng)常要對其做 插入或刪除操作時,這一點需要值得考慮。插入或刪除操作時,這一點需要值得考慮。 n 1i dl 2 1n i)(n n 1 E 講解:XX第28頁 2021/3/10 第28頁 u 線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)稱為線性鏈表。線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)稱為線性鏈表。 u 鏈?zhǔn)酱鎯Y(jié)構(gòu)不要求邏輯上相鄰的數(shù)據(jù)元素物理位置也相鄰,鏈?zhǔn)酱鎯Y(jié)構(gòu)不要求邏輯上相鄰的數(shù)

31、據(jù)元素物理位置也相鄰, 而且各數(shù)據(jù)元素的存儲順序也是任意的。各數(shù)據(jù)元素的先后而且各數(shù)據(jù)元素的存儲順序也是任意的。各數(shù)據(jù)元素的先后 關(guān)系是由各結(jié)點的指針域指示。關(guān)系是由各結(jié)點的指針域指示。 u 鏈?zhǔn)酱鎯Y(jié)構(gòu)的每一個存儲結(jié)點不僅存儲結(jié)點的值,而且存鏈?zhǔn)酱鎯Y(jié)構(gòu)的每一個存儲結(jié)點不僅存儲結(jié)點的值,而且存 儲結(jié)點之間的關(guān)系:儲結(jié)點之間的關(guān)系: u 鏈?zhǔn)酱鎯Y(jié)構(gòu)分為單鏈表、雙向鏈表、循環(huán)鏈表鏈?zhǔn)酱鎯Y(jié)構(gòu)分為單鏈表、雙向鏈表、循環(huán)鏈表 u 線性鏈表不能隨機存取線性鏈表不能隨機存取 數(shù)據(jù)域數(shù)據(jù)域指針域指針域 講解:XX第29頁 2021/3/10 第29頁 設(shè)線性表為設(shè)線性表為(a1,a2,a3,a4,a5)

32、 1a29 2 3a11 4 5a410 6 7 8 9a35 10a50 HEAD 3 a1a2a5a3a4HEAD 319510 線性鏈表的邏輯狀態(tài)線性鏈表的邏輯狀態(tài) 線性鏈表線性鏈表的物理狀態(tài)的物理狀態(tài) 1 a1 2 a2 3 a3 4 a4 5 a5 6 7 注意:1 2 3 此類編號不 代表所在的 地址單元的 地址編碼 線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu) 及其插入與刪除操作及其插入與刪除操作 講解:XX第30頁 2021/3/10 第30頁 zhaoqiansun lizhouwu zhengwang / H 存儲地址存儲地址數(shù)據(jù)數(shù)據(jù) 1 7 13 19 25 31 37 43

33、 li qian sun wang wu zhao zheng zhou 指針指針 43 13 1 null 37 7 19 25 31 頭指針頭指針 單鏈表單鏈表 講解:XX第31頁 2021/3/10 第31頁 單鏈表的插入運算單鏈表的插入運算 在在P所指向的結(jié)點之后插入所指向的結(jié)點之后插入 新的結(jié)點新的結(jié)點 單鏈表單鏈表刪除運算刪除運算 P ba x S b aP La aian ai-1ai+1 要求要求:刪除結(jié)點刪除結(jié)點ai。 講解:XX第32頁 2021/3/10 第32頁 循環(huán)鏈表循環(huán)鏈表: 首尾相接的鏈表。首尾相接的鏈表。 將最后一個結(jié)點的空指針改為指向頭結(jié)點,從任一結(jié)點出發(fā)均

34、可找到其將最后一個結(jié)點的空指針改為指向頭結(jié)點,從任一結(jié)點出發(fā)均可找到其 它結(jié)點它結(jié)點。 a1 a2ana3 L . 帶頭結(jié)點的單鏈表帶頭結(jié)點的單鏈表 a1a2ana3 L . 循環(huán)單鏈表循環(huán)單鏈表 特點特點: 可以從任何一個結(jié)點開始訪問鏈表的所有結(jié)點可以從任何一個結(jié)點開始訪問鏈表的所有結(jié)點. 講解:XX第33頁 2021/3/10 第33頁 雙向鏈表的存儲結(jié)構(gòu)雙向鏈表的存儲結(jié)構(gòu) 在每個結(jié)點中設(shè)置兩個指針,一個指向后繼,一個指向前驅(qū)??芍苯釉诿總€結(jié)點中設(shè)置兩個指針,一個指向后繼,一個指向前驅(qū)??芍苯?確定一個結(jié)點的前驅(qū)和后繼結(jié)點。可提高效率。確定一個結(jié)點的前驅(qū)和后繼結(jié)點??商岣咝?。 HEAD

35、31510 a2 a3 a4 a1 提問:單向鏈表的缺點是什么? 提示:如何尋找結(jié)點的直接前趨。 雙向鏈表可以克服單鏈表的單向性的缺點。 在雙向鏈表的結(jié)點中有兩個指針域,其一指向直接后繼,另一在雙向鏈表的結(jié)點中有兩個指針域,其一指向直接后繼,另一 指向直接前趨。指向直接前趨。 雙向循環(huán)鏈表雙向循環(huán)鏈表 講解:XX第34頁 2021/3/10 第34頁 u 線性表的應(yīng)用:應(yīng)用最廣的數(shù)據(jù)結(jié)構(gòu)。線性表的應(yīng)用:應(yīng)用最廣的數(shù)據(jù)結(jié)構(gòu)。 u .高級語言中的數(shù)組;高級語言中的數(shù)組; u 計算機的文件系統(tǒng);計算機的文件系統(tǒng); u 計算機的目錄系統(tǒng);計算機的目錄系統(tǒng); u 電話號碼查詢系統(tǒng)(可采用順序表或單鏈表結(jié)

36、電話號碼查詢系統(tǒng)(可采用順序表或單鏈表結(jié) 構(gòu)構(gòu));); u 各種事務(wù)處理(各種事務(wù)處理(可采用順序表或單鏈表結(jié)構(gòu)可采用順序表或單鏈表結(jié)構(gòu)); 講解:XX第35頁 2021/3/10 第35頁 棧和隊列棧和隊列是兩種特殊的線性表,它們是運算時是兩種特殊的線性表,它們是運算時 要受到某些限制的線性表,故也稱為要受到某些限制的線性表,故也稱為限定性限定性 的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)。 講解:XX第36頁 2021/3/10 第36頁 1 .棧棧 棧棧是限定僅在表尾進(jìn)行插入或刪除操作的線性表。是限定僅在表尾進(jìn)行插入或刪除操作的線性表。 棧頂棧頂表尾。表尾。 棧底棧底表頭。表頭。 空??諚2缓氐目毡怼2缓?/p>

37、元素的空表。 a1 a2 an 棧底棧底 棧頂棧頂 進(jìn)棧進(jìn)棧 出棧出棧 棧棧s=(a1,a2,an) 后進(jìn)先出或先后進(jìn)先出或先 進(jìn)后出(進(jìn)后出(LIFO) 講解:XX第37頁 2021/3/10 第37頁 u棧的物理存儲結(jié)構(gòu)可以用順序結(jié)構(gòu),也可以用鏈表棧的物理存儲結(jié)構(gòu)可以用順序結(jié)構(gòu),也可以用鏈表 結(jié)構(gòu)。結(jié)構(gòu)。 u下面討論順序存儲結(jié)構(gòu)中棧元素的插入和刪除運算。下面討論順序存儲結(jié)構(gòu)中棧元素的插入和刪除運算。 n 順序棧的進(jìn)棧和出棧運算順序棧的進(jìn)棧和出棧運算 n棧的基本運算有三種:入棧、退棧和讀棧頂元素棧的基本運算有三種:入棧、退棧和讀棧頂元素 在順序棧中插入和刪除運算不需要在順序棧中插入和刪除運算

38、不需要 移動表中其他數(shù)據(jù)元素移動表中其他數(shù)據(jù)元素。 講解:XX第38頁 2021/3/10 第38頁 2. 棧的順序存儲結(jié)構(gòu)及其基本運算棧的順序存儲結(jié)構(gòu)及其基本運算 a2 a1 a1 a2 top 用順序存儲結(jié)構(gòu)表示的棧用順序存儲結(jié)構(gòu)表示的棧: 順序棧用一組連續(xù)的存儲單元存放自棧底到棧頂?shù)捻樞驐S靡唤M連續(xù)的存儲單元存放自棧底到棧頂?shù)?數(shù)據(jù)元素,一般用一維數(shù)組表示,設(shè)置一個簡單變量數(shù)據(jù)元素,一般用一維數(shù)組表示,設(shè)置一個簡單變量top指示指示 棧頂位置,稱為棧頂位置,稱為針棧頂指針棧頂指,它始終指向待插入元素的位置。它始終指向待插入元素的位置。 基本運算:基本運算: 壓(進(jìn))棧:壓(進(jìn))棧:PUS

39、H 出棧:出棧:POP 讀棧頂元素:讀棧頂元素:gettop 講解:XX第39頁 2021/3/10 第39頁 例子:例子: top base E D C B A top base C B A base top A base top 空桟:空桟:topbase 非空桟:非空桟:top始終在桟頂元素的后一個位置始終在桟頂元素的后一個位置 桟的元素個數(shù):桟的元素個數(shù): top-base 上溢上溢 下溢下溢 講解:XX第40頁 2021/3/10 第40頁 2 2、隊列、隊列 定義:定義:一種特殊的線性結(jié)構(gòu),限定只能在表的一端進(jìn)行插入,一種特殊的線性結(jié)構(gòu),限定只能在表的一端進(jìn)行插入, 在在 表的另一

40、端進(jìn)行刪除的線性表表的另一端進(jìn)行刪除的線性表 。此種結(jié)構(gòu)稱為。此種結(jié)構(gòu)稱為先進(jìn)先出先進(jìn)先出 (FIFO)表。)表。 a1 , a2 , a3 , a4 , an-1 , an 隊隊 列列 示示 意意 圖圖 隊頭隊頭 隊尾隊尾 先進(jìn)先出先進(jìn)先出 后進(jìn)后出后進(jìn)后出 (LIFO) 講解:XX第41頁 2021/3/10 第41頁 e3 e4 (c) e1,e2出隊,出隊,e4入隊入隊 隊隊 滿滿 rear =3 front e1 e2 e3 (b) rear front (b)e1,e2,e3入隊入隊 隊列的順序存儲結(jié)構(gòu)及其基本運算隊列的順序存儲結(jié)構(gòu)及其基本運算 3 2 1 0 (a) rear=f

41、ront=-1(隊空)隊空) rear front 空隊列空隊列: 非空隊列非空隊列: 隊列元素個數(shù)隊列元素個數(shù): rear=front=-1 front始終指向隊頭元素前一個位置,而始終指向隊頭元素前一個位置,而rear始終指向隊始終指向隊 尾元素的位置尾元素的位置 rear-front 講解:XX第42頁 2021/3/10 第42頁 隊列的物理存儲結(jié)構(gòu)可以用順序結(jié)構(gòu),也可以用鏈?zhǔn)浇Y(jié)隊列的物理存儲結(jié)構(gòu)可以用順序結(jié)構(gòu),也可以用鏈?zhǔn)浇Y(jié) 構(gòu)。構(gòu)。 u 順序隊列的運算順序隊列的運算 棧有三種操作:棧有三種操作: 入棧出棧讀棧頂元素入棧出棧讀棧頂元素 隊列有三種操作:入隊出隊讀隊首元素隊列有三種操作

42、:入隊出隊讀隊首元素 例:有入棧元素序列:例:有入棧元素序列:ABCD,求可能的出棧序列,求可能的出棧序列 如是隊列又是什么情況呢?如是隊列又是什么情況呢? 講解:XX第43頁 2021/3/10 第43頁 把隊列的存儲空間在邏輯上看作一個環(huán),當(dāng)把隊列的存儲空間在邏輯上看作一個環(huán),當(dāng)R指向存指向存 儲空間的末端后,就把它重新置于始端。儲空間的末端后,就把它重新置于始端。 u 循環(huán)隊列的運算循環(huán)隊列的運算 進(jìn)行刪除的一端稱做隊首進(jìn)行刪除的一端稱做隊首(front)。隊列中進(jìn)行插入的一端稱做隊列中進(jìn)行插入的一端稱做 隊尾隊尾(rear), 習(xí)題:數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊習(xí)題:數(shù)據(jù)結(jié)構(gòu)

43、分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊 列屬于列屬于【 】結(jié)構(gòu)。(結(jié)構(gòu)。(2005年年9月)月) 答案:答案:存儲結(jié)構(gòu)。存儲結(jié)構(gòu)。 講解:XX第44頁 2021/3/10 第44頁 frontrear Maxsize-1 0 1 e3 e4 rear =3 front 講解:XX第45頁 2021/3/10 第45頁 00 1 2 3 4 5 front A B C D E F rear 上溢上溢 00 1 2 3 4 5 front rear 下溢下溢 front=rear 隊滿隊滿 front=rear 隊空隊空 講解:XX第46頁 2021/3/10 第46頁 數(shù)據(jù)存儲結(jié)構(gòu)方面的考題數(shù)據(jù)存儲結(jié)構(gòu)

44、方面的考題 1:數(shù)據(jù)的存儲結(jié)構(gòu)是指:數(shù)據(jù)的存儲結(jié)構(gòu)是指 (2005年年4月)月) A) 存儲在外存中的數(shù)據(jù)存儲在外存中的數(shù)據(jù) B) 數(shù)據(jù)所占的存儲空間量數(shù)據(jù)所占的存儲空間量 C) 數(shù)據(jù)在計算機中的順序存儲方式數(shù)據(jù)在計算機中的順序存儲方式 D) 數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示 2. 下列敘述中正確的是下列敘述中正確的是 (2009年年3月)月) A)棧是)棧是“先進(jìn)先出先進(jìn)先出”的線性表的線性表 B)隊列是)隊列是“先進(jìn)后出先進(jìn)后出”的線性表的線性表 C)循環(huán)隊列是非線性結(jié)構(gòu))循環(huán)隊列是非線性結(jié)構(gòu) D)有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu))有序線

45、性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu) 3. 數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊列屬于數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊列屬于 。 4. 下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是 A)循環(huán)隊列)循環(huán)隊列 B) 帶鏈隊列帶鏈隊列 C) 二叉樹二叉樹 D)帶鏈棧)帶鏈棧 答案:答案:D。 答案:答案:D。 答案:線性結(jié)構(gòu)。答案:線性結(jié)構(gòu)。 答案:答案:c 講解:XX第47頁 2021/3/10 第47頁 5。下列敘述中正確的是(下列敘述中正確的是( )。)。 (2008年年9月)月) A)順序存儲結(jié)構(gòu)的存儲一定是連續(xù)的,鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空)

46、順序存儲結(jié)構(gòu)的存儲一定是連續(xù)的,鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空 間不一定是連續(xù)的間不一定是連續(xù)的 B)順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈?zhǔn)酱鎯Y(jié)構(gòu)只針對非線性)順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈?zhǔn)酱鎯Y(jié)構(gòu)只針對非線性 結(jié)構(gòu)結(jié)構(gòu) C)順序存儲結(jié)構(gòu)能存儲有序表,鏈?zhǔn)酱鎯Y(jié)構(gòu)不能存儲有序表)順序存儲結(jié)構(gòu)能存儲有序表,鏈?zhǔn)酱鎯Y(jié)構(gòu)不能存儲有序表 D)鏈?zhǔn)酱鎯Y(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間)鏈?zhǔn)酱鎯Y(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間 答案:答案:A。 6 6。下列關(guān)于棧的敘述正確的是。下列關(guān)于棧的敘述正確的是 (2008年年4月)月) A A)棧按)棧按“先進(jìn)先出先進(jìn)先出”組織數(shù)據(jù)組織數(shù)據(jù) B)B)棧按棧按“先進(jìn)后出先進(jìn)后出

47、”組織數(shù)據(jù)組織數(shù)據(jù) C C)只能在棧底插入數(shù)據(jù))只能在棧底插入數(shù)據(jù) D D)不能刪除數(shù)據(jù))不能刪除數(shù)據(jù) 答案:答案:B。 7. 一個隊列的初始狀態(tài)為空?,F(xiàn)將元素一個隊列的初始狀態(tài)為空?,F(xiàn)將元素A,B,C,D,E,F(xiàn),5,4,3, 2,1依次入隊,然后再依次退隊,則元素退隊的順序為依次入隊,然后再依次退隊,則元素退隊的順序為 【1】 。(。(2010 年年3月)月) 答案:答案:A,B,C,D,E,F(xiàn),5,4,3,2,1 講解:XX第48頁 2021/3/10 第48頁 9. 設(shè)某循環(huán)隊列的容量為設(shè)某循環(huán)隊列的容量為50,如果頭指針,如果頭指針front=45(指向指向 隊頭元素的前一位置隊頭元

48、素的前一位置),尾指針,尾指針rear=10(指向隊尾元素指向隊尾元素), 則該循環(huán)隊列中共有則該循環(huán)隊列中共有 【2】 個元素。個元素。 (2010年年3月)月) 8。假設(shè)用一個長度為。假設(shè)用一個長度為50的數(shù)組(數(shù)組元索的下標(biāo)從的數(shù)組(數(shù)組元索的下標(biāo)從0 到到49)作為棧的存儲空間,棧底指針)作為棧的存儲空間,棧底指針bottom指間棧底指間棧底 元素,棧頂指針元素,棧頂指針top指向棧頂元素,如果指向棧頂元素,如果bottom=49, top=30(數(shù)組下標(biāo)),則棧中具有(數(shù)組下標(biāo)),則棧中具有【 】個元素。個元素。 (2009年年3月)月) 答案:答案:19 答案:答案:15 4650

49、110 講解:XX第49頁 2021/3/10 u鏈表不具有的特點是鏈表不具有的特點是 A) 不必事先估計存儲空間不必事先估計存儲空間 B) 可隨機訪問任一元素可隨機訪問任一元素 C) 插入刪除不需要移動元素插入刪除不需要移動元素 D) 所需空間與線性表長度成正比所需空間與線性表長度成正比 u數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于 【1】 。 u數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機無關(guān)的是數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機無關(guān)的是數(shù)據(jù)的 A) 存儲結(jié)構(gòu)存儲結(jié)構(gòu)B) 物理結(jié)構(gòu)物理結(jié)構(gòu) C) 邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)D) 物理和存儲結(jié)構(gòu)物理和存儲結(jié)構(gòu) u數(shù)據(jù)的邏輯

50、結(jié)構(gòu)有線性結(jié)構(gòu)和數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和 【1】 兩大類。兩大類。 u數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的存儲結(jié)構(gòu)是指 A)數(shù)據(jù)所占的存儲空間)數(shù)據(jù)所占的存儲空間 B)數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示)數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示 C)數(shù)據(jù)在計算機中的順序存儲方式)數(shù)據(jù)在計算機中的順序存儲方式 D)存儲在外存中的數(shù)據(jù))存儲在外存中的數(shù)據(jù) 例題講解例題講解 存儲結(jié)構(gòu)存儲結(jié)構(gòu) 非線性結(jié)構(gòu)非線性結(jié)構(gòu) 講解:XX第50頁 2021/3/10 u 順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置 【2】 的存儲單元的存儲單元 中。中。 u 數(shù)據(jù)處理的最小單位是數(shù)據(jù)處理的

51、最小單位是 A) 數(shù)據(jù)數(shù)據(jù) B) 數(shù)據(jù)元素數(shù)據(jù)元素 C) 數(shù)據(jù)項數(shù)據(jù)項D) 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) u 數(shù)據(jù)結(jié)構(gòu)作為計算機的一門學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對各種數(shù)數(shù)據(jù)結(jié)構(gòu)作為計算機的一門學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對各種數(shù) 據(jù)結(jié)構(gòu)進(jìn)行的運算,以及據(jù)結(jié)構(gòu)進(jìn)行的運算,以及 A) 數(shù)據(jù)的存儲結(jié)構(gòu)數(shù)據(jù)的存儲結(jié)構(gòu) B) 計算方法計算方法 C) 數(shù)據(jù)映象數(shù)據(jù)映象 D) 邏輯存儲邏輯存儲 u 線性表的順序存儲結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)分別是線性表的順序存儲結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)分別是 A) 順序存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)順序存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu) B) 隨機存取的存儲結(jié)構(gòu)、順序存取的

52、存儲結(jié)構(gòu)隨機存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu) C) 隨機存取的存儲結(jié)構(gòu)、隨機存取的存儲結(jié)構(gòu)隨機存取的存儲結(jié)構(gòu)、隨機存取的存儲結(jié)構(gòu) D) 任意存取的存儲結(jié)構(gòu)、任意存取的存儲結(jié)構(gòu)任意存取的存儲結(jié)構(gòu)、任意存取的存儲結(jié)構(gòu) 相鄰相鄰 講解:XX第51頁 2021/3/10 u 根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié) 構(gòu)分成構(gòu)分成 A) 動態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)動態(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) u 數(shù)

53、據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的 【2】 以及對數(shù)據(jù)的操作運算。以及對數(shù)據(jù)的操作運算。 u 數(shù)據(jù)的基本單位是數(shù)據(jù)的基本單位是 【5】 。 u 下列敘述中,錯誤的是下列敘述中,錯誤的是 A) 數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān) B) 數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)處理的效率無關(guān)數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)處理的效率無關(guān) C) 數(shù)據(jù)的存儲結(jié)構(gòu)在計算機中所占的空間不一定是連續(xù)的數(shù)據(jù)的存儲結(jié)構(gòu)在計算機中所占的空間不一定是連續(xù)的 D) 一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu) 存儲結(jié)構(gòu)存儲結(jié)構(gòu) 數(shù)據(jù)元素數(shù)據(jù)元素 講

54、解:XX第52頁 2021/3/10 u鏈表不具有的特點是鏈表不具有的特點是 A) 不必事先估計存儲空間不必事先估計存儲空間 B) 可隨機訪問任一元素可隨機訪問任一元素 C) 插入刪除不需要移動元素插入刪除不需要移動元素 D) 所需空間與線性表長度成正比所需空間與線性表長度成正比 u順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置 【2】 的存儲單元的存儲單元 中。中。 u長度為長度為n的順序存儲線性表中,當(dāng)在任何位置上插入一個元素概率都相的順序存儲線性表中,當(dāng)在任何位置上插入一個元素概率都相 等時,插入一個元素所需移動元素的平均個數(shù)為等時,插入一個

55、元素所需移動元素的平均個數(shù)為 【1】 。 u線性表若采用順序存儲結(jié)構(gòu)時,要求內(nèi)存中可用存儲單元的地址線性表若采用順序存儲結(jié)構(gòu)時,要求內(nèi)存中可用存儲單元的地址 A) 必須是連續(xù)的必須是連續(xù)的 B) 部分地址必須是連續(xù)的部分地址必須是連續(xù)的 C) 一定是不連續(xù)的一定是不連續(xù)的 D) 連續(xù)不連續(xù)都可以連續(xù)不連續(xù)都可以 例題講解例題講解 相鄰相鄰 2 n 講解:XX第53頁 2021/3/10 u 線性表線性表L=(a1,a2,a3,ai,an),下列說法正確的是,下列說法正確的是 A) 每個元素都有一個直接前件和直接后件每個元素都有一個直接前件和直接后件 B) 線性表中至少要有一個元素線性表中至少要

56、有一個元素 C) 表中諸元素的排列順序必須是由小到大或由大到小表中諸元素的排列順序必須是由小到大或由大到小 D) 除第一個元素和最后一個元素外,其余每個元素都有一個除第一個元素和最后一個元素外,其余每個元素都有一個 且只有一個直且只有一個直 接前件和直接后件接前件和直接后件 u 線性表的順序存儲結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)分別是線性表的順序存儲結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)分別是 A) 順序存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)順序存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu) B) 隨機存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)隨機存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu) C) 隨機存取的存儲結(jié)構(gòu)、隨機存取的存儲結(jié)構(gòu)隨機存取的

57、存儲結(jié)構(gòu)、隨機存取的存儲結(jié)構(gòu) D) 任意存取的存儲結(jié)構(gòu)、任意存取的存儲結(jié)構(gòu)任意存取的存儲結(jié)構(gòu)、任意存取的存儲結(jié)構(gòu) u 下列敘述中,錯誤的是下列敘述中,錯誤的是 A) 數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān) B) 數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)處理的效率無關(guān)數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)處理的效率無關(guān) C) 數(shù)據(jù)的存儲結(jié)構(gòu)在計算機中所占的空間不一定是連續(xù)的數(shù)據(jù)的存儲結(jié)構(gòu)在計算機中所占的空間不一定是連續(xù)的 D) 一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu) 講解:XX第54頁 2021/3/10 u 根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程度,一

58、般將數(shù)根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程度,一般將數(shù) 據(jù)結(jié)構(gòu)分成據(jù)結(jié)構(gòu)分成 A) 動態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)動態(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) u 當(dāng)線性表采用順序存儲結(jié)構(gòu)實現(xiàn)存儲時,其主要特點是當(dāng)線性表采用順序存儲結(jié)構(gòu)實現(xiàn)存儲時,其主要特點是 【1】 。 隨機存取隨機存取 講解:XX第55頁 2021/3/10 u鏈表不具有的特點是鏈表不具有的特點是 A) 不必事先估計存儲空間不必事先估計存儲空間 B) 可隨機訪問任一元素可隨機訪問任一元素 C) 插入刪除不需要移動

59、元素插入刪除不需要移動元素D) 所需空間與線性表長度成正比所需空間與線性表長度成正比 u用鏈表表示線性表的優(yōu)點是用鏈表表示線性表的優(yōu)點是 A) 便于隨機存取便于隨機存取 B) 花費的存儲空間較順序存儲少花費的存儲空間較順序存儲少 C) 便于插入和刪除操作便于插入和刪除操作 D) 數(shù)據(jù)元素的物理順序與邏輯順序相同數(shù)據(jù)元素的物理順序與邏輯順序相同 u長度為長度為n的順序存儲線性表中的順序存儲線性表中,當(dāng)在任何位置上插入一個元素概率都相等時當(dāng)在任何位置上插入一個元素概率都相等時, 插入一個元素所需移動元素的平均個數(shù)為插入一個元素所需移動元素的平均個數(shù)為 【1】 。 u在單鏈表中,增加頭結(jié)點的目的是在

60、單鏈表中,增加頭結(jié)點的目的是 A) 方便運算的實現(xiàn)方便運算的實現(xiàn) B) 使單鏈表至少有一個結(jié)點使單鏈表至少有一個結(jié)點 C) 標(biāo)識表結(jié)點中首結(jié)點的位置標(biāo)識表結(jié)點中首結(jié)點的位置 D) 說明單鏈表是線性表的鏈?zhǔn)酱鎯崿F(xiàn)說明單鏈表是線性表的鏈?zhǔn)酱鎯崿F(xiàn) 例題講解例題講解 2 n 講解:XX第56頁 2021/3/10 u 非空的循環(huán)單鏈表非空的循環(huán)單鏈表head的尾結(jié)點的尾結(jié)點(由由p所指向所指向) ,滿足,滿足 A) p-next=NULLB) p=NULL C) p-next=head D) p=head u 循環(huán)鏈表的主要優(yōu)點是循環(huán)鏈表的主要優(yōu)點是 A) 不再需要頭指針了不再需要頭指針了 B)

溫馨提示

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

最新文檔

評論

0/150

提交評論