數(shù)據(jù)結(jié)構(gòu)(c語言版)復(fù)習(xí)資料(共5頁)_第1頁
數(shù)據(jù)結(jié)構(gòu)(c語言版)復(fù)習(xí)資料(共5頁)_第2頁
數(shù)據(jù)結(jié)構(gòu)(c語言版)復(fù)習(xí)資料(共5頁)_第3頁
數(shù)據(jù)結(jié)構(gòu)(c語言版)復(fù)習(xí)資料(共5頁)_第4頁
數(shù)據(jù)結(jié)構(gòu)(c語言版)復(fù)習(xí)資料(共5頁)_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)資料 一、填空題1. 數(shù)據(jù)結(jié)構(gòu)是一門研究非數(shù)值計算的程序設(shè)計問題中計算機的 操作對象 以及它們之間的 關(guān)系 和運算等的學(xué)科。2. 數(shù)據(jù)結(jié)構(gòu)被形式地定義為(D, R),其中D是 數(shù)據(jù)元素 的有限集合,R是D上的 關(guān)系 有限集合。3. 數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的 邏輯結(jié)構(gòu) 、數(shù)據(jù)的 存儲結(jié)構(gòu) 和數(shù)據(jù)的 運算 這三個方面的內(nèi)容。4. 數(shù)據(jù)結(jié)構(gòu)按邏輯結(jié)構(gòu)可分為兩大類,它們分別是 線性結(jié)構(gòu) 和 非線性結(jié)構(gòu) 。5. 線性結(jié)構(gòu)中元素之間存在一對一關(guān)系,樹形結(jié)構(gòu)中元素之間存在一對多關(guān)系,圖形結(jié)構(gòu)中元素之間存在多對多關(guān)系。6 在線性結(jié)構(gòu)中,第一個結(jié)點 沒有 前驅(qū)結(jié)點,其余每個結(jié)點有且只有 1個前驅(qū)結(jié)點;最后

2、一個結(jié)點 沒有 后續(xù)結(jié)點,其余每個結(jié)點有且只有1個后續(xù)結(jié)點。7. 在樹形結(jié)構(gòu)中,樹根結(jié)點沒有 前驅(qū) 結(jié)點,其余每個結(jié)點有且只有 1 個前驅(qū)結(jié)點;葉子結(jié)點沒有 后續(xù) 結(jié)點,其余每個結(jié)點的后續(xù)結(jié)點數(shù)可以任意多個 。8. 在圖形結(jié)構(gòu)中,每個結(jié)點的前驅(qū)結(jié)點數(shù)和后續(xù)結(jié)點數(shù)可以 任意多個 。9數(shù)據(jù)的存儲結(jié)構(gòu)可用四種基本的存儲方法表示,它們分別是順序 、 鏈式 、 索引 和 散列 。10. 數(shù)據(jù)的運算最常用的有5種,它們分別是插入 、 刪除、修改、 查找 、排序。11. 一個算法的效率可分為 時間 效率和 空間 效率。12. 在順序表中插入或刪除一個元素,需要平均移動 表中一半元素,具體移動的元素個數(shù)與 表

3、長和該元素在表中的位置 有關(guān)。13. 線性表中結(jié)點的集合是 有限 的,結(jié)點間的關(guān)系是 一對一 的。14. 向一個長度為n的向量的第i個元素(1in+1)之前插入一個元素時,需向后移動 n-i+1 個元素。15. 向一個長度為n的向量中刪除第i個元素(1in)時,需向前移動 n-i 個元素。16. 在順序表中訪問任意一結(jié)點的時間復(fù)雜度均為 O(1) ,因此,順序表也稱為 隨機存取 的數(shù)據(jù)結(jié)構(gòu)。17. 順序表中邏輯上相鄰的元素的物理位置 必定相鄰。單鏈表中邏輯上相鄰的元素的物理位置 不一定 相鄰。18在單鏈表中,除了首元結(jié)點外,任一結(jié)點的存儲位置由 其直接前驅(qū)結(jié)點的鏈域的值 指示。19 在n個結(jié)點

4、的單鏈表中要刪除已知結(jié)點*p,需找到它的前驅(qū)結(jié)點的地址,其時間復(fù)雜度為O(n)。20. 向量、棧和隊列都是 線性 結(jié)構(gòu),可以在向量的 任何 位置插入和刪除元素;對于棧只能在 棧頂 插入和刪除元素;對于隊列只能在 隊尾 插入和 隊首 刪除元素。21. 棧是一種特殊的線性表,允許插入和刪除運算的一端稱為 棧頂 。不允許插入和刪除運算的一端稱為 棧底 。22. 隊列 是被限定為只能在表的一端進行插入運算,在表的另一端進行刪除運算的線性表。23. 不包含任何字符(長度為0)的串 稱為空串; 由一個或多個空格(僅由空格符)組成的串 稱為空白串。24. 子串的定位運算稱為串的模式匹配; 被匹配的主串 稱為

5、目標串, 子串 稱為模式。25. 假設(shè)有二維數(shù)組A6×8,每個元素用相鄰的6個字節(jié)存儲,存儲器按字節(jié)編址。已知A的起始存儲位置(基地址)為1000,則數(shù)組A的體積(存儲量)為 288 B ;末尾元素A57的第一個字節(jié)地址為 1282 ;若按行存儲時,元素A14的第一個字節(jié)地址為 (8+4)×6+1000=1072 ;若按列存儲時,元素A47的第一個字節(jié)地址為 (6×74)×61000)1276 。26 由個結(jié)點所構(gòu)成的二叉樹有 5 種形態(tài)。 27. 一棵深度為6的滿二叉樹有 n1+n2=0+ n2= n0-1=31 個分支結(jié)點和 26-1 =32 個葉子

6、。注:滿二叉樹沒有度為1的結(jié)點,所以分支結(jié)點數(shù)就是二度結(jié)點數(shù)。28 一棵具有個結(jié)點的完全二叉樹,它的深度為 9 。( 注:用ë log2(n) û+1= ë 8.xx û+1=929設(shè)一棵完全二叉樹有700個結(jié)點,則共有 350 個葉子結(jié)點。答:最快方法:用葉子數(shù)n/2350 30 設(shè)一棵完全二叉樹具有1000個結(jié)點,則此完全二叉樹有 500 個葉子結(jié)點,有 499 個度為2的結(jié)點,有 1 個結(jié)點只有非空左子樹,有 0 個結(jié)點只有非空右子樹。答:最快方法:用葉子數(shù)n/2500 ,n2=n0-1=499。 另外,最后一結(jié)點為2i屬于左葉子,右葉子是空的,所

7、以有1個非空左子樹。完全二叉樹的特點決定不可能有左空右不空的情況,所以非空右子樹數(shù)0.31在數(shù)據(jù)的存放無規(guī)律而言的線性表中進行檢索的最佳方法是 順序查找(線性查找) 。32. 線性有序表(a1,a2,a3,a256)是從小到大排列的,對一個給定的值k,用二分法檢索表中與k相等的元素,在查找不成功的情況下,最多需要檢索 8 次。設(shè)有100個結(jié)點,用二分法查找時,最大比較次數(shù)是 7 。33. 假設(shè)在有序線性表a20上進行折半查找,則比較一次查找成功的結(jié)點數(shù)為1;比較兩次查找成功的結(jié)點數(shù)為 2 ;比較四次查找成功的結(jié)點數(shù)為 8 ;平均查找長度為 3.7 。解:顯然,平均查找長度O(log2n)<

8、;5次(25)。但具體是多少次,則不應(yīng)當(dāng)按照公式來計算(即(21×log221)/204.6次并不正確?。?。因為這是在假設(shè)n2m-1的情況下推導(dǎo)出來的公式。應(yīng)當(dāng)用窮舉法羅列:全部元素的查找次數(shù)為(12×24×38×45×5)74; ASL74/20=3.7 !34折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它將依次與表中元素 28,6,12,20 比較大小。35. 在各種查找方法中,平均查找長度與結(jié)點個數(shù)n無關(guān)的查找方法是 散列查找 。36. 散列法存儲的基本思想是由 關(guān)鍵字的值 決定數(shù)據(jù)的存

9、儲地址。二、判斷正誤(在正確的說法后面打勾,反之打叉)( × )1. 鏈表的每個結(jié)點中都恰好包含一個指針。 答:錯誤。鏈表中的結(jié)點可含多個指針域,分別存放多個指針。例如,雙向鏈表中的結(jié)點可以含有兩個指針域,分別存放指向其直接前趨和直接后繼結(jié)點的指針。( × )2. 鏈表的物理存儲結(jié)構(gòu)具有同鏈表一樣的順序。錯,鏈表的存儲結(jié)構(gòu)特點是無序,而鏈表的示意圖有序。( × )3. 鏈表的刪除算法很簡單,因為當(dāng)刪除鏈中某個結(jié)點后,計算機會自動地將后續(xù)的各個單元向前移動。錯,鏈表的結(jié)點不會移動,只是指針內(nèi)容改變。( × )4. 線性表的每個結(jié)點只能是一個簡單類型,而鏈表

10、的每個結(jié)點可以是一個復(fù)雜類型。錯,混淆了邏輯結(jié)構(gòu)與物理結(jié)構(gòu),鏈表也是線性表!且即使是順序表,也能存放記錄型數(shù)據(jù)。( × )5. 順序表結(jié)構(gòu)適宜于進行順序存取,而鏈表適宜于進行隨機存取。 錯,正好說反了。順序表才適合隨機存取,鏈表恰恰適于“順藤摸瓜”( × )6. 順序存儲方式的優(yōu)點是存儲密度大,且插入、刪除運算效率高。錯,前一半正確,但后一半說法錯誤,那是鏈式存儲的優(yōu)點。順序存儲方式插入、刪除運算效率較低,在表長為n的順序表中,插入和刪除一個數(shù)據(jù)元素,平均需移動表長一半個數(shù)的數(shù)據(jù)元素。( × )7. 線性表在物理存儲空間中也一定是連續(xù)的。錯,線性表有兩種存儲方式,

11、順序存儲和鏈式存儲。后者不要求連續(xù)存放。( × )8. 線性表在順序存儲時,邏輯上相鄰的元素未必在存儲的物理位置次序上相鄰。錯誤。線性表有兩種存儲方式,在順序存儲時,邏輯上相鄰的元素在存儲的物理位置次序上也相鄰。( × )9. 順序存儲方式只能用于存儲線性結(jié)構(gòu)。錯誤。順序存儲方式不僅能用于存儲線性結(jié)構(gòu),還可以用來存放非線性結(jié)構(gòu),例如完全二叉樹是屬于非線性結(jié)構(gòu),但其最佳存儲方式是順序存儲方式。(后一節(jié)介紹)( × )10. 線性表的邏輯順序與存儲順序總是一致的。錯,理由同7。鏈式存儲就無需一致。( × )11. 線性表的每個結(jié)點只能是一個簡單類型,而鏈表的

12、每個結(jié)點可以是一個復(fù)雜類型。 錯,線性表是邏輯結(jié)構(gòu)概念,可以順序存儲或鏈式存儲,與元素數(shù)據(jù)類型無關(guān)。( × )12. 在表結(jié)構(gòu)中最常用的是線性表,棧和隊列不太常用。 錯,不一定吧?調(diào)用子程序或函數(shù)常用,CPU中也用隊列。( )13. 棧是一種對所有插入、刪除操作限于在表的一端進行的線性表,是一種后進先出型結(jié)構(gòu)。( )14. 對于不同的使用者,一個表結(jié)構(gòu)既可以是棧,也可以是隊列,也可以是線性表。 正確,都是線性邏輯結(jié)構(gòu),棧和隊列其實是特殊的線性表,對運算的定義略有不同而已。( × )15. 棧和鏈表是兩種不同的數(shù)據(jù)結(jié)構(gòu)。 錯,棧是邏輯結(jié)構(gòu)的概念,是特殊殊線性表,而鏈表是存儲結(jié)

13、構(gòu)概念,二者不是同類項。( × )16. 棧和隊列是一種非線性數(shù)據(jù)結(jié)構(gòu)。 錯,他們都是線性邏輯結(jié)構(gòu),棧和隊列其實是特殊的線性表,對運算的定義略有不同而已。( )17. 棧和隊列的存儲方式既可是順序方式,也可是鏈接方式。 ( )18. 兩個棧共享一片連續(xù)內(nèi)存空間時,為提高內(nèi)存利用率,減少溢出機會,應(yīng)把兩個棧的棧底分別設(shè)在這片內(nèi)存空間的兩端。 ( × )19. 隊是一種插入與刪除操作分別在表的兩端進行的線性表,是一種先進后出型結(jié)構(gòu)。 錯,后半句不對。( × )20. 一個棧的輸入序列是12345,則棧的輸出序列不可能是12345。 錯,有可能。( )21. 若二叉樹用

14、二叉鏈表作存貯結(jié)構(gòu),則在n個結(jié)點的二叉樹鏈表中只有n1個非空指針域。( × )22.二叉樹中每個結(jié)點的兩棵子樹的高度差等于1。 ( )23.二叉樹中每個結(jié)點的兩棵子樹是有序的。 ( × )24.二叉樹中每個結(jié)點有兩棵非空子樹或有兩棵空子樹。 ( × )25.二叉樹中每個結(jié)點的關(guān)鍵字值大于其左非空子樹(若存在的話)所有結(jié)點的關(guān)鍵字值,且小于其右非空子樹(若存在的話)所有結(jié)點的關(guān)鍵字值。 (應(yīng)當(dāng)是二叉排序樹的特點)( × )26.二叉樹中所有結(jié)點個數(shù)是2k-1-1,其中k是樹的深度。(應(yīng)2i-1) ( × )27.二叉樹中所有結(jié)點,如果不存在非空左

15、子樹,則不存在非空右子樹。 ( × )28.對于一棵非空二叉樹,它的根結(jié)點作為第一層,則它的第i層上最多能有2i1個結(jié)點。(應(yīng)2i-1)( )29.用二叉鏈表法(link-rlink)存儲包含n個結(jié)點的二叉樹,結(jié)點的2n個指針區(qū)域中有n+1個為空指針。( )30.具有12個結(jié)點的完全二叉樹有5個度為2的結(jié)點。三、單項選擇題( B )1. 非線性結(jié)構(gòu)是數(shù)據(jù)元素之間存在一種:A)一對多關(guān)系 B)多對多關(guān)系 C)多對一關(guān)系 D)一對一關(guān)系( C )2. 數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機無關(guān)的是數(shù)據(jù)的 結(jié)構(gòu);A) 存儲 B) 物理 C) 邏輯 D) 物理和存儲( C )3. 算法分析的目的是:A

16、) 找出數(shù)據(jù)結(jié)構(gòu)的合理性 B) 研究算法中的輸入和輸出的關(guān)系C) 分析算法的效率以求改進 D) 分析算法的易懂性和文檔性( A )4. 算法分析的兩個主要方面是:A) 空間復(fù)雜性和時間復(fù)雜性 B) 正確性和簡明性C) 可讀性和文檔性 D) 數(shù)據(jù)復(fù)雜性和程序復(fù)雜性( C )5. 計算機算法指的是:A) 計算方法 B) 排序方法 C) 解決問題的有限運算序列 D) 調(diào)度方法( B )6. 計算機算法必須具備輸入、輸出和 等5個特性。A) 可行性、可移植性和可擴充性 B) 可行性、確定性和有窮性C) 確定性、有窮性和穩(wěn)定性 D) 易讀性、穩(wěn)定性和安全性( C )7數(shù)據(jù)在計算機存儲器內(nèi)表示時,物理地址

17、與邏輯地址相同并且是連續(xù)的,稱之為:(A)存儲結(jié)構(gòu) (B)邏輯結(jié)構(gòu) (C)順序存儲結(jié)構(gòu) (D)鏈式存儲結(jié)構(gòu)( B )8.一個向量第一個元素的存儲地址是100,每個元素的長度為2,則第5個元素的地址是 (A)110 (B)108 (C)100 (D)120( A )9. 在n個結(jié)點的順序表中,算法的時間復(fù)雜度是O(1)的操作是:(A) 訪問第i個結(jié)點(1in)和求第i個結(jié)點的直接前驅(qū)(2in) (B) 在第i個結(jié)點后插入一個新結(jié)點(1in)(C) 刪除第i個結(jié)點(1in)(D) 將n個結(jié)點從小到大排序( B )10. 向一個有127個元素的順序表中插入一個新元素并保持原來順序不變,平均要移動 個

18、元素(A)8 (B)63.5 (C)63 (D)7( A )11. 鏈接存儲的存儲結(jié)構(gòu)所占存儲空間:(A) 分兩部分,一部分存放結(jié)點值,另一部分存放表示結(jié)點間關(guān)系的指針(B) 只有一部分,存放結(jié)點值(C) 只有一部分,存儲表示結(jié)點間關(guān)系的指針(D) 分兩部分,一部分存放結(jié)點值,另一部分存放結(jié)點所占單元數(shù)( B )12. 鏈表是一種采用 存儲結(jié)構(gòu)存儲的線性表;(A)順序 (B)鏈式 (C)星式 (D)網(wǎng)狀( D )13. 線性表若采用鏈式存儲結(jié)構(gòu)時,要求內(nèi)存中可用存儲單元的地址:(A)必須是連續(xù)的 (B)部分地址必須是連續(xù)的(C)一定是不連續(xù)的 (D)連續(xù)或不連續(xù)都可以( B )14 線性表在 情況下適用于使用鏈式結(jié)構(gòu)實現(xiàn)。()需經(jīng)常修改中的結(jié)點值 ()需不斷對進行刪除插入 ()中含有大量的結(jié)點 ()中結(jié)點結(jié)構(gòu)復(fù)雜( B )15.棧中元素的進出原則是 先進先出 后進先出 ??談t進 棧滿則出( C )16. 若已知一個棧的入棧序列是1,2,3,n,其輸出序列為

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論