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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、與算法與算法 程序設計程序設計 基礎基礎 軟件工程軟件工程 基礎基礎 數據庫設計數據庫設計 基礎基礎 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 算法的基算法的基 本概念本概念 2.2.算法復雜算法復雜 度的概念和度的概念和 意義意義 數據結構的概念數據結構的概念 線性表線性表 棧和隊列棧和隊列 樹與二叉樹樹與二叉樹 查找技術查找技術 排序技術排序技術

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

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

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

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

7、 2.2.除最后一個元素,對剩余的除最后一個元素,對剩余的 元素重復上述過程,將次大的元素重復上述過程,將次大的 數排到表的倒數第二個位置;數排到表的倒數第二個位置; 3.3.重復上述過程;重復上述過程; 對于長度為對于長度為n n的線性表,冒泡排的線性表,冒泡排 序需要對表掃描序需要對表掃描n-1n-1遍。遍。 算法舉例:算法舉例:n個數排序個數排序 講解:XX第9頁 2021/3/10 4. 算法的兩個基本要素:算法的兩個基本要素: n 算術運算算術運算 n 關系運算關系運算 n 邏輯運算邏輯運算 n 數據傳輸數據傳輸 n 順序順序 n 選擇選擇 n 循環(huán)循環(huán) u一是對數據對象的運算和操作

8、; u二是算法的控制結構。 u算法基本設計方法:列舉法、歸納法、遞推、遞 歸、減斗遞推技術、回溯法 講解:XX第10頁 2021/3/10 評價一個算法優(yōu)劣的主要標準是算法的執(zhí)行效率和存儲需求:評價一個算法優(yōu)劣的主要標準是算法的執(zhí)行效率和存儲需求: n 時間復雜度:執(zhí)行這個算法所需要的時間復雜度:執(zhí)行這個算法所需要的計算工作量計算工作量 一般可以用算法在執(zhí)行過程中所需基本運算的執(zhí)行次數來度量計算工作量一般可以用算法在執(zhí)行過程中所需基本運算的執(zhí)行次數來度量計算工作量 n 空間復雜度:執(zhí)行這個算法所需要的空間復雜度:執(zhí)行這個算法所需要的內存空間內存空間 算法在執(zhí)行過程中臨時占用的存儲空間算法在執(zhí)行

9、過程中臨時占用的存儲空間 時間復雜度時間復雜度它大致等于計算機它大致等于計算機執(zhí)行一種簡單操作所需的平均時間執(zhí)行一種簡單操作所需的平均時間與算法與算法 中進行中進行簡單操作的次數的乘積簡單操作的次數的乘積。 一個算法在計算機存儲器上所占用的存儲空間,包括一個算法在計算機存儲器上所占用的存儲空間,包括存儲算法本身所占用存儲算法本身所占用 的存儲空間的存儲空間、算法中的輸入輸出數據所占用的存儲空間算法中的輸入輸出數據所占用的存儲空間和和算法在運行過程中算法在運行過程中 臨時占用的存儲空間臨時占用的存儲空間這三個部分這三個部分 講解:XX第11頁 2021/3/10 (1) 在計算機中,算法是指在計

10、算機中,算法是指_。 A. 查詢方法查詢方法 B. 加工方法加工方法 C. 解題方案的準確而完整的描述解題方案的準確而完整的描述 D. 排序方法排序方法 (2)下列敘述中正確的是下列敘述中正確的是 (07年年4月月) A)算法的效率只與問題的規(guī)模有關,而與數據的存儲結構無關算法的效率只與問題的規(guī)模有關,而與數據的存儲結構無關 B)算法的時間復雜度是指執(zhí)行算法所需要的計算工作量算法的時間復雜度是指執(zhí)行算法所需要的計算工作量 C)數據的邏輯結構與存儲結構是一一對應的數據的邏輯結構與存儲結構是一一對應的 D)算法的時間復雜度與空間復雜度一定相關算法的時間復雜度與空間復雜度一定相關 (3)算法的有窮性

11、是指算法的有窮性是指 (08年年4月月) A)算法程序的運行時間是有限的)算法程序的運行時間是有限的 B)算法程序所處理的數據量是有限的)算法程序所處理的數據量是有限的 C)算法程序的長度是有限的)算法程序的長度是有限的 D)算法只能被有限的用戶使用)算法只能被有限的用戶使用 (c) (B) 算法習題: (A) 講解:XX第12頁 2021/3/10 (4) 算法的時問復雜度是指算法的時問復雜度是指 (2010年年3月月) A)算法的執(zhí)行時間算法的執(zhí)行時間 B)算法所處理的數據量算法所處理的數據量 C)算法程序中的語句或指令條數算法程序中的語句或指令條數 D)算法在執(zhí)行過程中所需要的基本運算次

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

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

14、和擁有足夠的情報。和擁有足夠的情報。 u 算法的空間復雜度是指算法的空間復雜度是指 A) 算法程序的長度算法程序的長度 B) 算法程序中的指令條數算法程序中的指令條數 C) 算法程序所占的存儲空間算法程序所占的存儲空間 D) 執(zhí)行過程中所需要的存儲空間執(zhí)行過程中所需要的存儲空間 u 在計算機中,算法是指在計算機中,算法是指 A) 加工方法加工方法B) 解題方案的準確而完整的描述解題方案的準確而完整的描述 C) 排序方法排序方法D) 查詢方法查詢方法 例題講解例題講解 有窮性有窮性 講解:XX第14頁 2021/3/10 u算法分析的目的是算法分析的目的是 A) 找出數據結構的合理性找出數據結構

15、的合理性 B) 找出算法中輸入和輸找出算法中輸入和輸 出之間的關系出之間的關系 C) 分析算法的易懂性和可靠性分析算法的易懂性和可靠性 D) 分析算法的效率分析算法的效率 以求改進以求改進 u算法的工作量大小和實現算法所需的存儲單元多少算法的工作量大小和實現算法所需的存儲單元多少 分別稱為算法的分別稱為算法的 【1】 。 時間復雜度和空間復雜度時間復雜度和空間復雜度 講解:XX第15頁 2021/3/10 計算機在進行數據處理時,實際需要處理的數據元素一般有計算機在進行數據處理時,實際需要處理的數據元素一般有 很多,而這些大量的數據元素都需要存放在計算機中,因此,大量很多,而這些大量的數據元素

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

17、據 元素之間存在有某種關系(即聯系),這種關系反映了該集元素之間存在有某種關系(即聯系),這種關系反映了該集 合中的數據元素所固有的一種結構。合中的數據元素所固有的一種結構。 超市的物品如何超市的物品如何 存放才好找且節(jié)存放才好找且節(jié) 省空間呢?省空間呢? 講解:XX第16頁 2021/3/10 二二. 數據結構數據結構 數據結構是指相互有關聯的數據元素的集合。數據結構是指相互有關聯的數據元素的集合。 數據結構是研究數據和數據之間關系的一門學科,它數據結構是研究數據和數據之間關系的一門學科,它 包括三個方面。包括三個方面。 (1)數據集合中各數據元素之間所固有的邏輯關系,)數據集合中各數據元素

18、之間所固有的邏輯關系, 即數據的邏輯結構;即數據的邏輯結構; (2)在對數據進行處理時,各數據元素在計算機中)在對數據進行處理時,各數據元素在計算機中 的存儲關系,即數據的存儲結構;的存儲關系,即數據的存儲結構; (3)對各種數據結構進行的運算。)對各種數據結構進行的運算。 講解:XX第17頁 2021/3/10 u 1. 邏輯結構邏輯結構 數據的邏輯結構是指反映數據元素之間邏輯關系的數據結數據的邏輯結構是指反映數據元素之間邏輯關系的數據結 構。構。 數據的邏輯結構包含:數據的邏輯結構包含: (1)表示數據元素的信息;)表示數據元素的信息; (2)表示各數據元素之間的前后件關系。)表示各數據元

19、素之間的前后件關系。 例:例: 1. 一年四季的數據結構一年四季的數據結構 B=(D,R) D=春,夏,秋,冬春,夏,秋,冬 R=(春,夏春,夏) ,(夏,秋夏,秋),(秋,冬秋,冬) 2. 家庭成員的數據結構家庭成員的數據結構 B=(D,R) D=父親,兒子,女兒父親,兒子,女兒 R=(父親,兒子父親,兒子) ,(父親,女兒父親,女兒) 春夏秋冬 數據結構的圖形表示數據結構的圖形表示 父親 兒子女兒 講解:XX第18頁 2021/3/10 u常見的常見的邏輯結構邏輯結構有:有: 線性結構、樹形結構和圖形結構。線性結構、樹形結構和圖形結構。 線性結構線性結構 樹形結構樹形結構 圖形結構圖形結構

20、 u 線性結構線性結構 結構中的每個元素之間存在一個對一個的關系;結構中的每個元素之間存在一個對一個的關系; u 樹形結構樹形結構 結構中的每個元素之間存在一個對多個的關系;結構中的每個元素之間存在一個對多個的關系; u 圖形結構或網狀結構圖形結構或網狀結構 結構中的每個元素之間存在多個對多個的關系。結構中的每個元素之間存在多個對多個的關系。 其中,其中,樹形結構和圖形結構統(tǒng)稱為非線形結構樹形結構和圖形結構統(tǒng)稱為非線形結構。數據的邏輯結構可以。數據的邏輯結構可以 用二元關系表示,也可以直觀地用圖形來表示。用二元關系表示,也可以直觀地用圖形來表示。 講解:XX第19頁 2021/3/10 u 2

21、. 存儲結構(物理結構存儲結構(物理結構) 計算機在實際進行數據處理時,被處理的各數據元素總是被存放在計計算機在實際進行數據處理時,被處理的各數據元素總是被存放在計 算機的存儲空間中,并且,各數據元素在計算機存儲空間中的位置與算機的存儲空間中,并且,各數據元素在計算機存儲空間中的位置與 它們的邏輯關系不一定是相同的,而且一般也不可能相同。它們的邏輯關系不一定是相同的,而且一般也不可能相同。 如:如:一年四季 家庭成員 計算機存儲空間怎樣存放? 存儲結構指數據結構在計算機存儲空間中的具體實現。存儲結構指數據結構在計算機存儲空間中的具體實現。 常見的存儲結構有:常見的存儲結構有: n 順序存儲結構

22、順序存儲結構 n 鏈式存儲結構鏈式存儲結構 n 索引存儲結構索引存儲結構 只抽象地反映數據元素之間的關系的結構,只抽象地反映數據元素之間的關系的結構, 而不管其存儲方式的數據結構稱為邏輯結而不管其存儲方式的數據結構稱為邏輯結 構。構。 一種一種數據結構可以根據需要表示成一種或數據結構可以根據需要表示成一種或 多種存儲結構多種存儲結構。 講解:XX第20頁 2021/3/10 u 3. 數據的運算數據的運算 n 檢索檢索 n 插入插入 n 刪除刪除 n 更新更新 n 排序排序 通常,一個數據結構中的元素結點可能是動態(tài)變化的。根據需要通常,一個數據結構中的元素結點可能是動態(tài)變化的。根據需要 或在處

23、理過程中,可以在一個數據結構中增加一個新結點(插入運或在處理過程中,可以在一個數據結構中增加一個新結點(插入運 算),也可以刪除某個結點(刪除運算),除此之外,對數據結構算),也可以刪除某個結點(刪除運算),除此之外,對數據結構 的運算還有查找、分類、合并、分解、復制和修改。的運算還有查找、分類、合并、分解、復制和修改。 在對數據結構的處理過程中,不僅數據結構中結點的個數在動態(tài)在對數據結構的處理過程中,不僅數據結構中結點的個數在動態(tài) 變化,而且,各數據元素之間的關系也有可能在動態(tài)地變化。變化,而且,各數據元素之間的關系也有可能在動態(tài)地變化。如: 無序表變有序表 數據結構是研究數據和數據之數據結

24、構是研究數據和數據之 間關系的一門學科,研究以下三間關系的一門學科,研究以下三 方面內容:方面內容: n 數據的邏輯結構數據的邏輯結構 n 數據的存儲結構數據的存儲結構 n 數據的運算數據的運算 父親 兒子女兒 2021/3/10年11月21 日講解:XX 第第21 21|92|92頁頁 常見的數據結構常見的數據結構 u 數據結構分類數據結構分類 線性結構與非線性結構線性結構與非線性結構兩大類型 線性結構:一個非空的數據結構若滿足下面的兩個條件,則這種數據一個非空的數據結構若滿足下面的兩個條件,則這種數據 結構即為結構即為。 有且僅有一個根結點;有且僅有一個根結點; 除第一個結點外,每一個結點

25、最多有一個前件;除第一個結點外,每一個結點最多有一個前件; 除最后一個結點外,每一個結點最多有一個后件。除最后一個結點外,每一個結點最多有一個后件。 常見的線性結構有:常見的線性結構有: 2021/3/10年11月21 日講解:XX 第第2222|92|92頁頁 a1a2a5a3a4HEAD 319510 線性鏈表的邏輯狀態(tài)線性鏈表的邏輯狀態(tài) 常見的非線性結構有樹、常見的非線性結構有樹、 非線性結構一個數據結構不是線性結構。一個數據結構不是線性結構。 講解:XX第23頁 2021/3/10 線性表是由線性表是由n(n0)個數據元素)個數據元素 a1,a2,ai,an組成的一個有限序列。組成的一

26、個有限序列。 春春 夏夏 秋秋 冬冬 記錄記錄1 02011001 張三張三 男男 記錄記錄2 02011003 李四李四 女女 記錄記錄3 記錄記錄4 講解:XX第24頁 2021/3/10 特點:特點: 順序存儲結構把順序存儲結構把邏輯上相邏輯上相 鄰鄰的數據元素存儲在的數據元素存儲在物理上相鄰物理上相鄰 的存儲單元里,順序存儲結構的存儲單元里,順序存儲結構只只 存儲結點的值存儲結點的值,不存儲結點間的,不存儲結點間的 關系,結點間的關系由存儲單元關系,結點間的關系由存儲單元 的鄰接關系來體現。的鄰接關系來體現。 a1 a2 ai an 存儲地址存儲地址 2000 2004 2000+4*

27、(i-1) 2000+4*(n-1) 占占4個字節(jié)個字節(jié) 第i個數的地址第一個數的地址L為該類型數所占的字節(jié) 線性表的存儲結構有兩種:線性表的存儲結構有兩種: u 順序存儲結構順序存儲結構 u 鏈式存儲結構鏈式存儲結構 講解:XX第25頁 2021/3/10 u 順序表的插入運算順序表的插入運算 u 順序表的刪除運算順序表的刪除運算 在線性表順序存儲情況下,要插入或刪除一個元在線性表順序存儲情況下,要插入或刪除一個元 素,都會由于數據元素的移動而消耗大量的處理時間,素,都會由于數據元素的移動而消耗大量的處理時間, 所以這種存儲方式對于小線性表或其中數據元素不經所以這種存儲方式對于小線性表或其中

28、數據元素不經 常變動的線性表是合適的。常變動的線性表是合適的。 線性表的順序存儲結構稱為順序表。線性表的順序存儲結構稱為順序表。 講解:XX第26頁 2021/3/10 插入運算插入運算 ai-1.a2a1 alength ai+1ai x ai-1.a2a1 alength ai+1ai X 插入算法的分析插入算法的分析: : 假設線性表中含有假設線性表中含有n n個數據元素,在進行插入操作時,若假個數據元素,在進行插入操作時,若假 定在定在n+1n+1個位置上插入元素的可能性均等,則平均移動元素的個數為:個位置上插入元素的可能性均等,則平均移動元素的個數為: 1n 1i is 2 n 1)

29、i(n 1n 1 E 講解:XX第27頁 2021/3/10 刪除運算刪除運算 ai-1.a2a1 alength ai+1ai ai-1.a2a1 alength ai+1 刪除算法的分析刪除算法的分析: : 在進行刪除操作時,若假定刪除每個元素的可能性均等,則在進行刪除操作時,若假定刪除每個元素的可能性均等,則 平均移動元素的個數為:平均移動元素的個數為: 總結總結: : 順序存儲結構表示的線性表,在做插入或刪除操作時,平均需要移順序存儲結構表示的線性表,在做插入或刪除操作時,平均需要移 動大約一半的數據元素。當線性表的數據元素量較大,并且經常要對其做動大約一半的數據元素。當線性表的數據元

30、素量較大,并且經常要對其做 插入或刪除操作時,這一點需要值得考慮。插入或刪除操作時,這一點需要值得考慮。 n 1i dl 2 1n i)(n n 1 E 講解:XX第28頁 2021/3/10 u 線性表的鏈式存儲結構稱為線性鏈表。線性表的鏈式存儲結構稱為線性鏈表。 u 鏈式存儲結構不要求邏輯上相鄰的數據元素物理位置也相鄰,鏈式存儲結構不要求邏輯上相鄰的數據元素物理位置也相鄰, 而且各數據元素的存儲順序也是任意的。各數據元素的先后而且各數據元素的存儲順序也是任意的。各數據元素的先后 關系是由各結點的指針域指示。關系是由各結點的指針域指示。 u 鏈式存儲結構的每一個存儲結點不僅存儲結點的值,而且

31、存鏈式存儲結構的每一個存儲結點不僅存儲結點的值,而且存 儲結點之間的關系:儲結點之間的關系: u 鏈式存儲結構分為單鏈表、雙向鏈表、循環(huán)鏈表鏈式存儲結構分為單鏈表、雙向鏈表、循環(huán)鏈表 u 線性鏈表不能隨機存取線性鏈表不能隨機存取 數據域數據域指針域指針域 講解:XX第29頁 2021/3/10 設線性表為設線性表為(a1,a2,a3,a4,a5) 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

32、 a5 6 7 注意:1 2 3 此類編號不 代表所在的 地址單元的 地址編碼 線性表的鏈式存儲結構線性表的鏈式存儲結構 及其插入與刪除操作及其插入與刪除操作 講解:XX第30頁 2021/3/10 zhaoqiansun lizhouwu zhengwang / H 存儲地址存儲地址數據數據 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 頭指針頭指針 單鏈表單鏈表 講解:XX第31頁 2021/3/10 單鏈表的插入運算單鏈表的插入運算 在在P所指向的結點之后

33、插入所指向的結點之后插入 新的結點新的結點 單鏈表單鏈表刪除運算刪除運算 P ba x S b aP La aian ai-1ai+1 要求要求:刪除結點刪除結點ai。 講解:XX第32頁 2021/3/10 循環(huán)鏈表循環(huán)鏈表: 首尾相接的鏈表。首尾相接的鏈表。 將最后一個結點的空指針改為指向頭結點,從任一結點出發(fā)均可找到其將最后一個結點的空指針改為指向頭結點,從任一結點出發(fā)均可找到其 它結點它結點。 a1 a2ana3 L . 帶頭結點的單鏈表帶頭結點的單鏈表 a1a2ana3 L . 循環(huán)單鏈表循環(huán)單鏈表 特點特點: 可以從任何一個結點開始訪問鏈表的所有結點可以從任何一個結點開始訪問鏈表的

34、所有結點. 講解:XX第33頁 2021/3/10 雙向鏈表的存儲結構雙向鏈表的存儲結構 在每個結點中設置兩個指針,一個指向后繼,一個指向前驅??芍苯釉诿總€結點中設置兩個指針,一個指向后繼,一個指向前驅??芍苯?確定一個結點的前驅和后繼結點。可提高效率。確定一個結點的前驅和后繼結點。可提高效率。 HEAD 31510 a2 a3 a4 a1 提問:單向鏈表的缺點是什么? 提示:如何尋找結點的直接前趨。 雙向鏈表可以克服單鏈表的單向性的缺點。 在雙向鏈表的結點中有兩個指針域,其一指向直接后繼,另一在雙向鏈表的結點中有兩個指針域,其一指向直接后繼,另一 指向直接前趨。指向直接前趨。 雙向循環(huán)鏈表雙

35、向循環(huán)鏈表 講解:XX第34頁 2021/3/10 u 線性表的應用:應用最廣的數據結構。線性表的應用:應用最廣的數據結構。 u .高級語言中的數組;高級語言中的數組; u 計算機的文件系統(tǒng);計算機的文件系統(tǒng); u 計算機的目錄系統(tǒng);計算機的目錄系統(tǒng); u 電話號碼查詢系統(tǒng)(可采用順序表或單鏈表結電話號碼查詢系統(tǒng)(可采用順序表或單鏈表結 構構);); u 各種事務處理(各種事務處理(可采用順序表或單鏈表結構可采用順序表或單鏈表結構); 講解:XX第35頁 2021/3/10 棧和隊列棧和隊列是兩種特殊的線性表,它們是運算時是兩種特殊的線性表,它們是運算時 要受到某些限制的線性表,故也稱為要受到

36、某些限制的線性表,故也稱為限定性限定性 的數據結構的數據結構。 講解:XX第36頁 2021/3/10 1 .棧棧 棧棧是限定僅在表尾進行插入或刪除操作的線性表。是限定僅在表尾進行插入或刪除操作的線性表。 棧頂棧頂表尾。表尾。 棧底棧底表頭。表頭。 空棧空棧不含元素的空表。不含元素的空表。 a1 a2 an 棧底棧底 棧頂棧頂 進棧進棧 出棧出棧 棧棧s=(a1,a2,an) 后進先出或先后進先出或先 進后出(進后出(LIFO) 講解:XX第37頁 2021/3/10 u棧的物理存儲結構可以用順序結構,也可以用鏈表棧的物理存儲結構可以用順序結構,也可以用鏈表 結構。結構。 u下面討論順序存儲結

37、構中棧元素的插入和刪除運算。下面討論順序存儲結構中棧元素的插入和刪除運算。 n 順序棧的進棧和出棧運算順序棧的進棧和出棧運算 n棧的基本運算有三種:入棧、退棧和讀棧頂元素棧的基本運算有三種:入棧、退棧和讀棧頂元素 在順序棧中插入和刪除運算不需要在順序棧中插入和刪除運算不需要 移動表中其他數據元素移動表中其他數據元素。 講解:XX第38頁 2021/3/10 2. 棧的順序存儲結構及其基本運算棧的順序存儲結構及其基本運算 a2 a1 a1 a2 top 用順序存儲結構表示的棧用順序存儲結構表示的棧: 順序棧用一組連續(xù)的存儲單元存放自棧底到棧頂的順序棧用一組連續(xù)的存儲單元存放自棧底到棧頂的 數據元

38、素,一般用一維數組表示,設置一個簡單變量數據元素,一般用一維數組表示,設置一個簡單變量top指示指示 棧頂位置,稱為棧頂位置,稱為針棧頂指針棧頂指,它始終指向待插入元素的位置。它始終指向待插入元素的位置。 基本運算:基本運算: 壓(進)棧:壓(進)棧:PUSH 出棧:出棧:POP 讀棧頂元素:讀棧頂元素:gettop 講解:XX第39頁 2021/3/10 例子:例子: top base E D C B A top base C B A base top A base top 空桟:空桟:topbase 非空桟:非空桟:top始終在桟頂元素的后一個位置始終在桟頂元素的后一個位置 桟的元素個數:

39、桟的元素個數: top-base 上溢上溢 下溢下溢 講解:XX第40頁 2021/3/10 2 2、隊列、隊列 定義:一種特殊的線性結構,限定只能在表的一端進行插入,定義:一種特殊的線性結構,限定只能在表的一端進行插入, 在在 表的另一端進行刪除的線性表表的另一端進行刪除的線性表 。此種結構稱為先進先出。此種結構稱為先進先出 (FIFO)表。)表。 a1 , a2 , a3 , a4 , an-1 , an 隊隊 列列 示示 意意 圖圖 隊頭隊頭 隊尾隊尾 先進先出先進先出 后進后出后進后出 (LIFO) 講解:XX第41頁 2021/3/10 e3 e4 (c) e1,e2出隊,出隊,e4

40、入隊入隊 隊隊 滿滿 rear =3 front e1 e2 e3 (b) rear front (b)e1,e2,e3入隊入隊 隊列的順序存儲結構及其基本運算隊列的順序存儲結構及其基本運算 3 2 1 0 (a) rear=front=-1(隊空)隊空) rear front 空隊列空隊列: 非空隊列非空隊列: 隊列元素個數隊列元素個數: rear=front=-1 front始終指向隊頭元素前一個位置,而始終指向隊頭元素前一個位置,而rear始終指向隊始終指向隊 尾元素的位置尾元素的位置 rear-front 講解:XX第42頁 2021/3/10 隊列的物理存儲結構可以用順序結構,也可以

41、用鏈式結隊列的物理存儲結構可以用順序結構,也可以用鏈式結 構。構。 u 順序隊列的運算順序隊列的運算 棧有三種操作:棧有三種操作: 入棧出棧讀棧頂元素入棧出棧讀棧頂元素 隊列有三種操作:入隊出隊讀隊首元素隊列有三種操作:入隊出隊讀隊首元素 例:有入棧元素序列:例:有入棧元素序列:ABCD,求可能的出棧序列,求可能的出棧序列 如是隊列又是什么情況呢?如是隊列又是什么情況呢? 講解:XX第43頁 2021/3/10 把隊列的存儲空間在邏輯上看作一個環(huán),當把隊列的存儲空間在邏輯上看作一個環(huán),當R指向存儲空指向存儲空 間的末端后,就把它重新置于始端。間的末端后,就把它重新置于始端。 u 循環(huán)隊列的運算

42、循環(huán)隊列的運算 隊列中進行插入的一端稱做隊尾隊列中進行插入的一端稱做隊尾(rear),進行刪除的一端進行刪除的一端 稱做隊首稱做隊首(front)。 習題:數據結構分為邏輯結構和存儲結構,循環(huán)隊習題:數據結構分為邏輯結構和存儲結構,循環(huán)隊 列屬于列屬于【 】結構。(結構。(2005年年9月)月) 答案:存儲結構。答案:存儲結構。 講解:XX第44頁 2021/3/10 frontrear Maxsize-1 0 1 e3 e4 rear =3 front 講解:XX第45頁 2021/3/10 00 1 2 3 4 5 front A B C D E F rear 上溢上溢 00 1 2 3

43、4 5 front rear 下溢下溢 front=rear 隊滿隊滿 front=rear 隊空隊空 講解:XX第46頁 2021/3/10 數據存儲結構方面的考題數據存儲結構方面的考題 1:數據的存儲結構是指:數據的存儲結構是指 (2005年年4月)月) A) 存儲在外存中的數據存儲在外存中的數據 B) 數據所占的存儲空間量數據所占的存儲空間量 C) 數據在計算機中的順序存儲方式數據在計算機中的順序存儲方式 D) 數據的邏輯結構在計算機中的表示數據的邏輯結構在計算機中的表示 2. 下列敘述中正確的是下列敘述中正確的是 (2009年年3月)月) A)棧是)棧是“先進先出先進先出”的線性表的線

44、性表 B)隊列是)隊列是“先進后出先進后出”的線性表的線性表 C)循環(huán)隊列是非線性結構)循環(huán)隊列是非線性結構 D)有序線性表既可以采用順序存儲結構,也可以采用鏈式存儲結構)有序線性表既可以采用順序存儲結構,也可以采用鏈式存儲結構 3. 數據結構分為線性結構和非線性結構,帶鏈的隊列屬于數據結構分為線性結構和非線性結構,帶鏈的隊列屬于 。 4. 下列數據結構中,屬于非線性結構的是下列數據結構中,屬于非線性結構的是 A)循環(huán)隊列)循環(huán)隊列 B) 帶鏈隊列帶鏈隊列 C) 二叉樹二叉樹 D)帶鏈棧)帶鏈棧 答案:答案:D。 答案:答案:D。 答案:線性結構。答案:線性結構。 答案:答案:c 講解:XX第

45、47頁 2021/3/10 5。下列敘述中正確的是(下列敘述中正確的是( )。)。 (2008年年9月)月) A)順序存儲結構的存儲一定是連續(xù)的,鏈式存儲結構的存儲空)順序存儲結構的存儲一定是連續(xù)的,鏈式存儲結構的存儲空 間不一定是連續(xù)的間不一定是連續(xù)的 B)順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性)順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性 結構結構 C)順序存儲結構能存儲有序表,鏈式存儲結構不能存儲有序表)順序存儲結構能存儲有序表,鏈式存儲結構不能存儲有序表 D)鏈式存儲結構比順序存儲結構節(jié)省存儲空間)鏈式存儲結構比順序存儲結構節(jié)省存儲空間 答案:答案:A。 6 6。

46、下列關于棧的敘述正確的是。下列關于棧的敘述正確的是 (2008年年4月)月) A A)棧按)棧按“先進先出先進先出”組織數據組織數據 B)B)棧按棧按“先進后出先進后出”組織數據組織數據 C C)只能在棧底插入數據)只能在棧底插入數據 D D)不能刪除數據)不能刪除數據 答案:答案:B。 7. 一個隊列的初始狀態(tài)為空?,F將元素一個隊列的初始狀態(tài)為空?,F將元素A,B,C,D,E,F,5,4,3, 2,1依次入隊,然后再依次退隊,則元素退隊的順序為依次入隊,然后再依次退隊,則元素退隊的順序為 【1】 。(。(2010 年年3月)月) 答案:答案:A,B,C,D,E,F,5,4,3,2,1 講解:X

47、X第48頁 2021/3/10 9. 設某循環(huán)隊列的容量為設某循環(huán)隊列的容量為50,如果頭指針,如果頭指針front=45(指向指向 隊頭元素的前一位置隊頭元素的前一位置),尾指針,尾指針rear=10(指向隊尾元素指向隊尾元素), 則該循環(huán)隊列中共有則該循環(huán)隊列中共有 【2】 個元素。個元素。 (2010年年3月)月) 8。假設用一個長度為。假設用一個長度為50的數組(數組元索的下標從的數組(數組元索的下標從0 到到49)作為棧的存儲空間,棧底指針)作為棧的存儲空間,棧底指針bottom指間棧底指間棧底 元素,棧頂指針元素,棧頂指針top指向棧頂元素,如果指向棧頂元素,如果bottom=49

48、, top=30(數組下標),則棧中具有(數組下標),則棧中具有【 】個元素。個元素。 (2009年年3月)月) 答案:答案:19 答案:答案:15 4650110 講解:XX第49頁 2021/3/10 u鏈表不具有的特點是鏈表不具有的特點是 A) 不必事先估計存儲空間不必事先估計存儲空間 B) 可隨機訪問任一元素可隨機訪問任一元素 C) 插入刪除不需要移動元素插入刪除不需要移動元素 D) 所需空間與線性表長度成正比所需空間與線性表長度成正比 u數據結構分為邏輯結構與存儲結構,線性鏈表屬于數據結構分為邏輯結構與存儲結構,線性鏈表屬于 【1】 。 u數據結構中,與所使用的計算機無關的是數據的數

49、據結構中,與所使用的計算機無關的是數據的 A) 存儲結構存儲結構B) 物理結構物理結構 C) 邏輯結構邏輯結構D) 物理和存儲結構物理和存儲結構 u數據的邏輯結構有線性結構和數據的邏輯結構有線性結構和 【1】 兩大類。兩大類。 u數據的存儲結構是指數據的存儲結構是指 A)數據所占的存儲空間)數據所占的存儲空間 B)數據的邏輯結構在計算機中的表示)數據的邏輯結構在計算機中的表示 C)數據在計算機中的順序存儲方式)數據在計算機中的順序存儲方式 D)存儲在外存中的數據)存儲在外存中的數據 例題講解例題講解 存儲結構存儲結構 非線性結構非線性結構 講解:XX第50頁 2021/3/10 u 順序存儲方

50、法是把邏輯上相鄰的結點存儲在物理位置順序存儲方法是把邏輯上相鄰的結點存儲在物理位置 【2】 的存儲單元的存儲單元 中。中。 u 數據處理的最小單位是數據處理的最小單位是 A) 數據數據 B) 數據元素數據元素 C) 數據項數據項D) 數據結構數據結構 u 數據結構作為計算機的一門學科,主要研究數據的邏輯結構、對各種數數據結構作為計算機的一門學科,主要研究數據的邏輯結構、對各種數 據結構進行的運算,以及據結構進行的運算,以及 A) 數據的存儲結構數據的存儲結構 B) 計算方法計算方法 C) 數據映象數據映象 D) 邏輯存儲邏輯存儲 u 線性表的順序存儲結構和線性表的鏈式存儲結構分別是線性表的順序

51、存儲結構和線性表的鏈式存儲結構分別是 A) 順序存取的存儲結構、順序存取的存儲結構順序存取的存儲結構、順序存取的存儲結構 B) 隨機存取的存儲結構、順序存取的存儲結構隨機存取的存儲結構、順序存取的存儲結構 C) 隨機存取的存儲結構、隨機存取的存儲結構隨機存取的存儲結構、隨機存取的存儲結構 D) 任意存取的存儲結構、任意存取的存儲結構任意存取的存儲結構、任意存取的存儲結構 相鄰相鄰 講解:XX第51頁 2021/3/10 u 根據數據結構中各數據元素之間前后件關系的復雜程度,一般將數據結根據數據結構中各數據元素之間前后件關系的復雜程度,一般將數據結 構分成構分成 A) 動態(tài)結構和靜態(tài)結構動態(tài)結構

52、和靜態(tài)結構 B) 緊湊結構和非緊湊結構緊湊結構和非緊湊結構 C) 線性結構和非線性結構線性結構和非線性結構 D) 內部結構和外部結構內部結構和外部結構 u 數據結構包括數據的邏輯結構、數據的數據結構包括數據的邏輯結構、數據的 【2】 以及對數據的操作運算。以及對數據的操作運算。 u 數據的基本單位是數據的基本單位是 【5】 。 u 下列敘述中,錯誤的是下列敘述中,錯誤的是 A) 數據的存儲結構與數據處理的效率密切相關數據的存儲結構與數據處理的效率密切相關 B) 數據的存儲結構與數據處理的效率無關數據的存儲結構與數據處理的效率無關 C) 數據的存儲結構在計算機中所占的空間不一定是連續(xù)的數據的存儲

53、結構在計算機中所占的空間不一定是連續(xù)的 D) 一種數據的邏輯結構可以有多種存儲結構一種數據的邏輯結構可以有多種存儲結構 存儲結構存儲結構 數據元素數據元素 講解:XX第52頁 2021/3/10 u鏈表不具有的特點是鏈表不具有的特點是 A) 不必事先估計存儲空間不必事先估計存儲空間 B) 可隨機訪問任一元素可隨機訪問任一元素 C) 插入刪除不需要移動元素插入刪除不需要移動元素 D) 所需空間與線性表長度成正比所需空間與線性表長度成正比 u順序存儲方法是把邏輯上相鄰的結點存儲在物理位置順序存儲方法是把邏輯上相鄰的結點存儲在物理位置 【2】 的存儲單元的存儲單元 中。中。 u長度為長度為n的順序存

54、儲線性表中,當在任何位置上插入一個元素概率都相的順序存儲線性表中,當在任何位置上插入一個元素概率都相 等時,插入一個元素所需移動元素的平均個數為等時,插入一個元素所需移動元素的平均個數為 【1】 。 u線性表若采用順序存儲結構時,要求內存中可用存儲單元的地址線性表若采用順序存儲結構時,要求內存中可用存儲單元的地址 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)

55、,下列說法正確的是,下列說法正確的是 A) 每個元素都有一個直接前件和直接后件每個元素都有一個直接前件和直接后件 B) 線性表中至少要有一個元素線性表中至少要有一個元素 C) 表中諸元素的排列順序必須是由小到大或由大到小表中諸元素的排列順序必須是由小到大或由大到小 D) 除第一個元素和最后一個元素外,其余每個元素都有一個除第一個元素和最后一個元素外,其余每個元素都有一個 且只有一個直且只有一個直 接前件和直接后件接前件和直接后件 u 線性表的順序存儲結構和線性表的鏈式存儲結構分別是線性表的順序存儲結構和線性表的鏈式存儲結構分別是 A) 順序存取的存儲結構、順序存取的存儲結構順序存取的存儲結構、

56、順序存取的存儲結構 B) 隨機存取的存儲結構、順序存取的存儲結構隨機存取的存儲結構、順序存取的存儲結構 C) 隨機存取的存儲結構、隨機存取的存儲結構隨機存取的存儲結構、隨機存取的存儲結構 D) 任意存取的存儲結構、任意存取的存儲結構任意存取的存儲結構、任意存取的存儲結構 u 下列敘述中,錯誤的是下列敘述中,錯誤的是 A) 數據的存儲結構與數據處理的效率密切相關數據的存儲結構與數據處理的效率密切相關 B) 數據的存儲結構與數據處理的效率無關數據的存儲結構與數據處理的效率無關 C) 數據的存儲結構在計算機中所占的空間不一定是連續(xù)的數據的存儲結構在計算機中所占的空間不一定是連續(xù)的 D) 一種數據的邏

57、輯結構可以有多種存儲結構一種數據的邏輯結構可以有多種存儲結構 講解:XX第54頁 2021/3/10 u 根據數據結構中各數據元素之間前后件關系的復雜程度,一般將數根據數據結構中各數據元素之間前后件關系的復雜程度,一般將數 據結構分成據結構分成 A) 動態(tài)結構和靜態(tài)結構動態(tài)結構和靜態(tài)結構 B) 緊湊結構和非緊湊結構緊湊結構和非緊湊結構 C) 線性結構和非線性結構線性結構和非線性結構 D) 內部結構和外部結構內部結構和外部結構 u 當線性表采用順序存儲結構實現存儲時,其主要特點是當線性表采用順序存儲結構實現存儲時,其主要特點是 【1】 。 隨機存取隨機存取 講解:XX第55頁 2021/3/10

58、 u鏈表不具有的特點是鏈表不具有的特點是 A) 不必事先估計存儲空間不必事先估計存儲空間 B) 可隨機訪問任一元素可隨機訪問任一元素 C) 插入刪除不需要移動元素插入刪除不需要移動元素D) 所需空間與線性表長度成正比所需空間與線性表長度成正比 u用鏈表表示線性表的優(yōu)點是用鏈表表示線性表的優(yōu)點是 A) 便于隨機存取便于隨機存取 B) 花費的存儲空間較順序存儲少花費的存儲空間較順序存儲少 C) 便于插入和刪除操作便于插入和刪除操作 D) 數據元素的物理順序與邏輯順序相同數據元素的物理順序與邏輯順序相同 u長度為長度為n的順序存儲線性表中的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時當在

59、任何位置上插入一個元素概率都相等時, 插入一個元素所需移動元素的平均個數為插入一個元素所需移動元素的平均個數為 【1】 。 u在單鏈表中,增加頭結點的目的是在單鏈表中,增加頭結點的目的是 A) 方便運算的實現方便運算的實現 B) 使單鏈表至少有一個結點使單鏈表至少有一個結點 C) 標識表結點中首結點的位置標識表結點中首結點的位置 D) 說明單鏈表是線性表的鏈式存儲實現說明單鏈表是線性表的鏈式存儲實現 例題講解例題講解 2 n 講解:XX第56頁 2021/3/10 u 非空的循環(huán)單鏈表非空的循環(huán)單鏈表head的尾結點的尾結點(由由p所指向所指向) ,滿足,滿足 A) p-next=NULLB)

60、 p=NULL C) p-next=head D) p=head u 循環(huán)鏈表的主要優(yōu)點是循環(huán)鏈表的主要優(yōu)點是 A) 不再需要頭指針了不再需要頭指針了 B) 從表中任一結點出發(fā)都能訪問到整個鏈表從表中任一結點出發(fā)都能訪問到整個鏈表 C) 在進行插入、刪除運算時,能更好的保證鏈表不斷開在進行插入、刪除運算時,能更好的保證鏈表不斷開 D) 已知某個結點的位置后,能夠容易的找到它的直接前件已知某個結點的位置后,能夠容易的找到它的直接前件 u 當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿, 不能進行入隊運算。這種情況稱為不能進行入隊

溫馨提示

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

評論

0/150

提交評論