數(shù)據(jù)結(jié)構(gòu)c語言版期末考試復習試題1_第1頁
數(shù)據(jù)結(jié)構(gòu)c語言版期末考試復習試題1_第2頁
數(shù)據(jù)結(jié)構(gòu)c語言版期末考試復習試題1_第3頁
數(shù)據(jù)結(jié)構(gòu)c語言版期末考試復習試題1_第4頁
數(shù)據(jù)結(jié)構(gòu)c語言版期末考試復習試題1_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)結(jié)構(gòu)與算法復習題一、選擇題。1在數(shù)據(jù)結(jié)構(gòu)中,從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分為 C 。A動態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu) B緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C線性結(jié)構(gòu)和非線性結(jié)構(gòu) D內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)2數(shù)據(jù)結(jié)構(gòu)在計算機內(nèi)存中的表示是指 A 。A數(shù)據(jù)的存儲結(jié)構(gòu) B數(shù)據(jù)結(jié)構(gòu) C數(shù)據(jù)的邏輯結(jié)構(gòu) D數(shù)據(jù)元素之間的關系3在數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機無關的是數(shù)據(jù)的 A 結(jié)構(gòu)。A邏輯 B存儲 C邏輯和存儲 D物理4在存儲數(shù)據(jù)時,通常不僅要存儲各數(shù)據(jù)元素的值,而且還要存儲 C 。A數(shù)據(jù)的處理方法 B數(shù)據(jù)元素的類型 C數(shù)據(jù)元素之間的關系 D數(shù)據(jù)的存儲方法5在決定選取何種存儲結(jié)構(gòu)時,一般不考慮 A 。A各結(jié)點的值如何 B結(jié)點個數(shù)的多少C對數(shù)

2、據(jù)有哪些運算 D所用的編程語言實現(xiàn)這種結(jié)構(gòu)是否方便。6以下說法正確的是 D 。A數(shù)據(jù)項是數(shù)據(jù)的基本單位B數(shù)據(jù)元素是數(shù)據(jù)的最小單位C數(shù)據(jù)結(jié)構(gòu)是帶結(jié)構(gòu)的數(shù)據(jù)項的集合D一些表面上很不相同的數(shù)據(jù)可以有相同的邏輯結(jié)構(gòu)7算法分析的目的是 C ,算法分析的兩個主要方面是 A 。(1)A找出數(shù)據(jù)結(jié)構(gòu)的合理性 B研究算法中的輸入和輸出的關系C分析算法的效率以求改進 C分析算法的易讀性和文檔性(2)A空間復雜度和時間復雜度 B正確性和簡明性 C可讀性和文檔性 D數(shù)據(jù)復雜性和程序復雜性8下面程序段的時間復雜度是 O(n2) 。 s =0;for( I =0; in; i+) for(j=0;jn;j+)s +=Bi

3、j;sum = s ;9下面程序段的時間復雜度是 O(n*m) 。for( i =0; in; i+) for(j=0;jm;j+)Aij 0;10下面程序段的時間復雜度是 O(log3n) 。i 0;while(inext =NULL Chead-next =head D head!=NULL15帶頭結(jié)點的單鏈表head為空的判定條件是 B 。Ahead = NULL B head-next =NULL Chead-next =head D head!=NULL16若某表最常用的操作是在最后一個結(jié)點之后插入一個結(jié)點或刪除最后一個結(jié)點,則采用 D 存儲方式最節(jié)省運算時間。A單鏈表 B給出表頭指

4、針的單循環(huán)鏈表 C雙鏈表 D帶頭結(jié)點的雙循環(huán)鏈表17需要分配較大空間,插入和刪除不需要移動元素的線性表,其存儲結(jié)構(gòu)是 B 。A單鏈表 B靜態(tài)鏈表 C線性鏈表 D順序存儲結(jié)構(gòu)18非空的循環(huán)單鏈表head的尾結(jié)點(由p所指向)滿足 C 。Ap-next = NULL Bp = NULLCp-next =head Dp = head19在循環(huán)雙鏈表的p所指的結(jié)點之前插入s所指結(jié)點的操作是 D 。Ap-prior = s;s-next = p;p-prior-next = s;s-prior = p-priorBp-prior = s;p-prior-next = s;s-next = p;s-pri

5、or = p-priorCs-next = p;s-prior = p-prior;p-prior = s;p-prior-next = sDs-next = p;s-prior = p-prior;p-prior-next = s;p-prior = s20如果最常用的操作是取第i個結(jié)點及其前驅(qū),則采用 D 存儲方式最節(jié)省時間。A單鏈表 B雙鏈表 C單循環(huán)鏈表 D 順序表21在一個具有n個結(jié)點的有序單鏈表中插入一個新結(jié)點并仍然保持有序的時間復雜度是 B 。AO(1) BO(n) CO(n2) DO(nlog2n)22在一個長度為n(n1)的單鏈表上,設有頭和尾兩個指針,執(zhí)行 B 操作與鏈表的

6、長度有關。A刪除單鏈表中的第一個元素B刪除單鏈表中的最后一個元素C在單鏈表第一個元素前插入一個新元素D在單鏈表最后一個元素后插入一個新元素23與單鏈表相比,雙鏈表的優(yōu)點之一是 D 。A插入、刪除操作更簡單 B可以進行隨機訪問C可以省略表頭指針或表尾指針D順序訪問相鄰結(jié)點更靈活24如果對線性表的操作只有兩種,即刪除第一個元素,在最后一個元素的后面插入新元素,則最好使用 B 。A只有表頭指針沒有表尾指針的循環(huán)單鏈表B只有表尾指針沒有表頭指針的循環(huán)單鏈表C非循環(huán)雙鏈表D循環(huán)雙鏈表25在長度為n的順序表的第i個位置上插入一個元素(1 i n+1),元素的移動次數(shù)為: A 。An i + 1 Bn i

7、Ci Di 1 26對于只在表的首、尾兩端進行插入操作的線性表,宜采用的存儲結(jié)構(gòu)為 C 。A順序表 B 用頭指針表示的循環(huán)單鏈表C用尾指針表示的循環(huán)單鏈表 D單鏈表27下述哪一條是順序存儲結(jié)構(gòu)的優(yōu)點? C 。A插入運算方便 B可方便地用于各種邏輯結(jié)構(gòu)的存儲表示C存儲密度大 D刪除運算方便28下面關于線性表的敘述中,錯誤的是哪一個? B 。A線性表采用順序存儲,必須占用一片連續(xù)的存儲單元B線性表采用順序存儲,便于進行插入和刪除操作。C線性表采用鏈式存儲,不必占用一片連續(xù)的存儲單元D線性表采用鏈式存儲,便于進行插入和刪除操作。29線性表是具有n個 B 的有限序列。A字符 B數(shù)據(jù)元素 C數(shù)據(jù)項 D表

8、元素30在n個結(jié)點的線性表的數(shù)組實現(xiàn)中,算法的時間復雜度是O(1)的操作是 A 。A訪問第i(1=i=n)個結(jié)點和求第i個結(jié)點的直接前驅(qū)(1i=n)B在第i(1=i=n)個結(jié)點后插入一個新結(jié)點C刪除第i(1=inext=s;s-next=p-next B s-next=p-next ;p-next=s;Cp-next=s;p-next=s-next Dp-next=s-next;p-next=s36線性表的順序存儲結(jié)構(gòu)是一種 A 。A隨機存取的存儲結(jié)構(gòu) B順序存取的存儲結(jié)構(gòu)C索引存取的存儲結(jié)構(gòu) DHash存取的存儲結(jié)構(gòu)37棧的特點是 B ,隊列的特點是 A 。A先進先出 B先進后出38棧和隊列

9、的共同點是 C 。A都是先進后出 B都是先進先出C只允許在端點處插入和刪除元素 D沒有共同點39一個棧的進棧序列是a,b,c,d,e,則棧的不可能的輸出序列是 C 。Aedcba Bdecba Cdceab Dabcde40設有一個棧,元素依次進棧的順序為A、B、C、D、E。下列 C 是不可能的出棧序列。 AA,B,C,D,E BB,C,D,E,A CE,A,B,C,D DE,D,C,B,A41以下 B 不是隊列的基本運算?A從隊尾插入一個新元素 B從隊列中刪除第i個元素C判斷一個隊列是否為空 D讀取隊頭元素的值42若已知一個棧的進棧序列是1,2,3,n,其輸出序列為p1,p2,p3,pn,若

10、p1n,則pi為 C 。Ai Bni Cni1 D不確定43判定一個順序棧st(最多元素為MaxSize)為空的條件是 B 。Ast-top != -1 Bst-top = -1 Cst-top != MaxSize D st-top = MaxSize 44判定一個順序棧st(最多元素為MaxSize)為滿的條件是 D 。Ast-top != -1 Bst-top = -1 Cst-top != MaxSize Dst-top = MaxSize 45一個隊列的入隊序列是1,2,3,4,則隊列的輸出序列是 B 。A4,3,2,1 B1,2,3,4C1,4,3,2 D3,2,4,146判定一個

11、循環(huán)隊列qu(最多元素為MaxSize)為空的條件是 C 。Aqu-rear qu-front =MaxSize Bqu-rear qu-front -1=MaxSize Cqu-rear =qu-front D qu-rear =qu-front -147在循環(huán)隊列中,若front與rear 分別表示對頭元素和隊尾元素的位置,則判斷循環(huán)隊列空的條件是 C 。 Afront=rear+1 Brear=front+1 Cfront=rear Dfront=048向一個棧頂指針為h的帶頭結(jié)點的鏈棧中插入指針s所指的結(jié)點時,應執(zhí)行 D 操作。Ah-next=s; Bs-next=h;Cs-next=

12、h;h =s; Ds-next=h-next;h-next=s;49輸入序列為ABC,可以變?yōu)镃BA時,經(jīng)過的棧操作為 B 。Apush,pop,push,pop,push,pop Bpush,push,push,pop, pop, pop Cpush,push,pop, pop,push,pop Dpush,pop,push,push,pop, pop50若棧采用順序存儲方式存儲,現(xiàn)兩棧共享空間V1 m,top1、top2分別代表第1和第2個棧的棧頂,棧1的底在V1,棧2的底在Vm,則棧滿的條件是 B 。A|top2-top1|=0 B top1+1=top2 Ctop1+top2=m Dt

13、op1=top251設計一個判別表達式中左、右括號是否配對出現(xiàn)的算法,采用 D 數(shù)據(jù)結(jié)構(gòu)最佳。A線性表的順序存儲結(jié)構(gòu) B隊列 C線性表的鏈式存儲結(jié)構(gòu) D棧52允許對隊列進行的操作有 D 。A對隊列中的元素排序 B取出最近進隊的元素 C在隊頭元素之前插入元素 D刪除隊頭元素53對于循環(huán)隊列 D 。A無法判斷隊列是否為空 B無法判斷隊列是否為滿 C隊列不可能滿 D以上說法都不對54若用一個大小為6的數(shù)值來實現(xiàn)循環(huán)隊列,且當前rear和front的值分別為0和3,當從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為 B 。A1和5 B2和4 C4和2 D5和155隊列的“先進先出

14、”特性是指 D 。A最早插入隊列中的元素總是最后被刪除 B當同時進行插入、刪除操作時,總是插入操作優(yōu)先C每當有刪除操作時,總是要先做一次插入操作D每次從隊列中刪除的總是最早插入的元素56和順序棧相比,鏈棧有一個比較明顯的優(yōu)勢是 A 。A通常不會出現(xiàn)棧滿的情況 B 通常不會出現(xiàn)??盏那闆rC插入操作更容易實現(xiàn) D刪除操作更容易實現(xiàn)57用不帶頭結(jié)點的單鏈表存儲隊列,其頭指針指向隊頭結(jié)點,尾指針指向隊尾結(jié)點,則在進行出隊操作時 C 。A僅修改隊頭指針 B僅修改隊尾指針C隊頭、隊尾指針都可能要修改 D隊頭、隊尾指針都要修改58若串S=software,其子串的數(shù)目是 B 。A8 B37 C36 D959

15、串的長度是指 B 。A串中所含不同字母的個數(shù) B串中所含字符的個數(shù) C串中所含不同字符的個數(shù) D串中所含非空格字符的個數(shù)60串是一種特殊的線性表,其特殊性體現(xiàn)在 B 。A可以順序存儲 B數(shù)據(jù)元素是一個字符C可以鏈式存儲 D數(shù)據(jù)元素可以是多個字符61設有兩個串p和q,求q在p中首次出現(xiàn)的位置的運算稱為 B 。A連接 B 模式匹配 C求子串 D求串長62數(shù)組A中,每個元素的長度為3個字節(jié),行下標i從1到8,列下標j從1到10,從首地址SA開始連續(xù)存放的存儲器內(nèi),該數(shù)組按行存放,元素A85的起始地址為 C 。ASA141 B SA144 CSA222 DSA22563數(shù)組A中,每個元素的長度為3個字

16、節(jié),行下標i從1到8,列下標j從1到10,從首地址SA開始連續(xù)存放的存儲器內(nèi),該數(shù)組按行存放,元素A58的起始地址為 C 。ASA141 B SA180 CSA222 DSA22564若聲明一個浮點數(shù)數(shù)組如下: froat average=new float30;假設該數(shù)組的內(nèi)存起始位置為200, average15的內(nèi)存地址是 C 。A214 B215 C260 D25665設二維數(shù)組A1 m,1 n按行存儲在數(shù)組B中,則二維數(shù)組元素Ai,j在一維數(shù)組B中的下標為 A 。An*(i-1)+j B n*(i-1)+j-1 Ci*(j-1) Dj*m+i-166有一個10090的稀疏矩陣,非0元

17、素有10,設每個整型數(shù)占2個字節(jié),則用三元組表示該矩陣時,所需的字節(jié)數(shù)是 B 。A20 B 66 C18 000 D3367數(shù)組A0 4,-1 -3,5 7中含有的元素個數(shù)是 A 。A55 B 45 C36 D1668對矩陣進行壓縮存儲是為了 D 。A方便運算 B 方便存儲 C提高運算速度 D減少存儲空間69設有一個10階的對稱矩陣A,采用壓縮存儲方式,以行序為主存儲,a1,1為第一個元素,其存儲地址為1,每個元素占1個地址空間,則a8,5的地址為 B 。A13 B 33 C18 D4070稀疏矩陣一般的壓縮存儲方式有兩種,即 C 。A二維數(shù)組和三維數(shù)組 B 三元組和散列C三元組和十字鏈表 D

18、 散列和十字鏈表71樹最適合用來表示 C 。A有序數(shù)據(jù)元素 B無序數(shù)據(jù)元素C元素之間具有分支層次關系的數(shù)據(jù) D元素之間無聯(lián)系的數(shù)據(jù)72深度為5的二叉樹至多有 C 個結(jié)點。A16 B 32 C 31 C 1073對一個滿二叉樹,m個葉子,n個結(jié)點,深度為h,則 D 。An = h+m B h+m = 2n C m = h-1 D n = 2h-174任何一棵二叉樹的葉子結(jié)點在前序、中序和后序遍歷序列中的相對次序 A 。A不發(fā)生改變 B發(fā)生改變 C不能確定 D以上都不對75在線索化樹中,每個結(jié)點必須設置一個標志來說明它的左、右鏈指向的是樹結(jié)構(gòu)信息,還是線索化信息,若0標識樹結(jié)構(gòu)信息,1標識線索,對

19、應葉結(jié)點的左右鏈域,應標識為_ D _。A00 B01 C10 D1176在下述論述中,正確的是 D 。只有一個結(jié)點的二叉樹的度為0;二叉樹的度為2;二叉樹的左右子樹可任意交換;深度為K的順序二叉樹的結(jié)點個數(shù)小于或等于深度相同的滿二叉樹。A B C D77設森林F對應的二叉樹為B,它有m個結(jié)點,B的根為p,p的右子樹的結(jié)點個數(shù)為n,森林F中第一棵樹的結(jié)點的個數(shù)是 A 。Am-n Bm-n-1 Cn+1 D不能確定78若一棵二叉樹具有10個度為2的結(jié)點,5個度為1的結(jié)點,則度為0的結(jié)點的個數(shù)是 B 。A9 B11 C15 D不能確定79具有10個葉子結(jié)點的二叉樹中有 B 個度為2的結(jié)點。A8 B

20、9 C10 D1180在一個無向圖中,所有頂點的度數(shù)之和等于所有邊數(shù)的 C 倍。A1/2 B 1 C 2 D 481在一個有向圖中,所有頂點的入度之和等于所有頂點的出度之和的 B 倍。A1/2 B 1 C 2 D 482某二叉樹結(jié)點的中序序列為ABCDEFG,后序序列為BDCAFGE,則其左子樹中結(jié)點數(shù)目為: C A3 B2 C4 D583已知一算術(shù)表達式的中綴形式為AB *CD/E,后綴形式為ABC *+DE/,其前綴形式為 D 。AA+B*C/DE BA+B*CD/E C +*ABC/DE D+A*BC/DE84已知一個圖,如圖所示,若從頂點a出發(fā)按深度搜索法進行遍歷,則可能得到的一種頂點

21、序列為_D_;按廣度搜索法進行遍歷,則可能得到的一種頂點序列為_A_;Aa,b,e,c,d,f Ba,c,f,e,b,d Ca,e,b,c,f,d, Da,e,d,f,c,bAa,b,c,e,d,f Ba,b,c,e,f,d Ca,e,b,c,f,d, Da,c,f,d,e,b85采用鄰接表存儲的圖的深度優(yōu)先遍歷算法類似于二叉樹的_A_。A先序遍歷 B中序遍歷 C后序遍歷 D按層遍歷86采用鄰接表存儲的圖的廣度優(yōu)先遍歷算法類似于二叉樹的_D_。A先序遍歷 B中序遍歷 C后序遍歷 D按層遍歷87具有n 個結(jié)點的連通圖至少有 A 條邊。 A n-1 B n C n(n-1)/2 D 2n88廣義表

22、(a),a)的表頭是 C ,表尾是 C 。Aa B () C (a) D (a)89廣義表(a)的表頭是 C ,表尾是 B 。Aa B () C (a) D (a)90順序查找法適合于存儲結(jié)構(gòu)為 B 的線性表。A 散列存儲 B 順序存儲或鏈式存儲 C 壓縮存儲 D 索引存儲91對線性表進行折半查找時,要求線性表必須 B 。A 以順序方式存儲 B 以順序方式存儲,且結(jié)點按關鍵字有序排列C 以鏈式方式存儲 D 以鏈式方式存儲,且結(jié)點按關鍵字有序排列92采用折半查找法查找長度為n的線性表時,每個元素的平均查找長度為 D 。A O(n2) B O(nlog2n) C O(n) D O(log2n)93

23、有一個有序表為1,3,9,12,32,41,45,62,75,77,82,95,100,當折半查找值為82的結(jié)點時, C 次比較后查找成功。A 11 B 5 C 4 D 894二叉樹為二叉排序樹的充分必要條件是其任一結(jié)點的值均大于其左孩子的值、小于其右孩子的值。這種說法 B 。A 正確 B 錯誤95下面關于B樹和B+樹的敘述中,不正確的結(jié)論是 A 。A B樹和B+樹都能有效的支持順序查找 B B樹和B+樹都能有效的支持隨機查找C B樹和B+樹都是平衡的多叉樹 D B樹和B+樹都可用于文件索引結(jié)構(gòu)96以下說法錯誤的是 B 。A散列法存儲的思想是由關鍵字值決定數(shù)據(jù)的存儲地址B散列表的結(jié)點中只包含數(shù)

24、據(jù)元素自身的信息,不包含指針。C負載因子是散列表的一個重要參數(shù),它反映了散列表的飽滿程度。D散列表的查找效率主要取決于散列表構(gòu)造時選取的散列函數(shù)和處理沖突的方法。97查找效率最高的二叉排序樹是 C 。A所有結(jié)點的左子樹都為空的二叉排序樹。B所有結(jié)點的右子樹都為空的二叉排序樹。C平衡二叉樹。D沒有左子樹的二叉排序樹。98排序方法中,從未排序序列中依次取出元素與已排序序列中的元素進行比較,將其放入已排序序列的正確位置上的方法,稱為 C 。A希爾排序 B。冒泡排序 C插入排序 D。選擇排序99在所有的排序方法中,關鍵字比較的次數(shù)與記錄的初始排列次序無關的是 D 。A希爾排序 B冒泡排序 C直接插入排

25、序 D直接選擇排序100堆是一種有用的數(shù)據(jù)結(jié)構(gòu)。下列關鍵碼序列 D 是一個堆。A94,31,53,23,16,72 B94,53,31,72,16,23 C16,53,23,94,31,72 D16,31,23,94,53,72 101堆排序是一種 B 排序。A插入 B選擇 C交換 D歸并102 D 在鏈表中進行操作比在順序表中進行操作效率高。A順序查找 B折半查找 C分塊查找 D插入103直接選擇排序的時間復雜度為 D 。(n 為元素個數(shù))AO(n) BO(log2n) CO(nlog2n) D O(n2)二、填空題。1數(shù)據(jù)邏輯結(jié)構(gòu)包括 線性結(jié)構(gòu) 、 樹形結(jié)構(gòu) 和 圖狀結(jié)構(gòu) 三種類型,樹形結(jié)

26、構(gòu)和圖狀結(jié)構(gòu)合稱 非線性結(jié)構(gòu) 。2數(shù)據(jù)的邏輯結(jié)構(gòu)分為 集合 、線性結(jié)構(gòu) 、 樹形結(jié)構(gòu) 和 圖狀結(jié)構(gòu) 4種。3在線性結(jié)構(gòu)中,第一個結(jié)點 沒有 前驅(qū)結(jié)點,其余每個結(jié)點有且只有 1 個前驅(qū)結(jié)點;最后一個結(jié)點 沒有 后續(xù)結(jié)點,其余每個結(jié)點有且只有 1 個后續(xù)結(jié)點。4線性結(jié)構(gòu)中元素之間存在 一對一 關系,樹形結(jié)構(gòu)中元素之間存在 一對多 關系,圖形結(jié)構(gòu)中元素之間存在 多對多 關系。5在樹形結(jié)構(gòu)中,樹根結(jié)點沒有 前驅(qū) 結(jié)點,其余每個結(jié)點有且只有 1 個前驅(qū)結(jié)點;葉子結(jié)點沒有 后續(xù) 結(jié)點,其余每個結(jié)點的后續(xù)結(jié)點可以 任意多個 。6數(shù)據(jù)結(jié)構(gòu)的基本存儲方法是 順序 、 鏈式 、 索引 和 散列 存儲 。7衡量一個

27、算法的優(yōu)劣主要考慮正確性、可讀性、健壯性和 時間復雜度與 空間復雜度 。8評估一個算法的優(yōu)劣,通常從 時間復雜度 和 空間復雜度 兩個方面考察。9算法的5個重要特性是 有窮性 、 確定性 、 可行性 、輸入和輸出。10在一個長度為n的順序表中刪除第i個元素時,需向前移動 n-i-1 個元素。11在單鏈表中,要刪除某一指定的結(jié)點,必須找到該結(jié)點的 前驅(qū) 結(jié)點。12在雙鏈表中,每個結(jié)點有兩個指針域,一個指向 前驅(qū) 結(jié)點,另一個指向 后繼結(jié)點 。13在順序表中插入或刪除一個數(shù)據(jù)元素,需要平均移動 n 個數(shù)據(jù)元素,移動數(shù)據(jù)元素的個數(shù)與 位置 有關。14當線性表的元素總數(shù)基本穩(wěn)定,且很少進行插入和刪除操

28、作,但要求以最快的速度存取線性表的元素是,應采用 順序 存儲結(jié)構(gòu)。15根據(jù)線性表的鏈式存儲結(jié)構(gòu)中每一個結(jié)點包含的指針個數(shù),將線性鏈表分成 單鏈表 和 雙鏈表 。16順序存儲結(jié)構(gòu)是通過 下標 表示元素之間的關系的;鏈式存儲結(jié)構(gòu)是通過 指針 表示元素之間的關系的。17帶頭結(jié)點的循環(huán)鏈表L中只有一個元素結(jié)點的條件是 L-next-next=L 。18 棧 是限定僅在表尾進行插入或刪除操作的線性表,其運算遵循 后進先出 的原則。19空串是 零個字符的串 ,其長度等于 零??瞻状怯梢粋€或多個空格字符組成的串,其長度等于其包含的空格個數(shù)。20組成串的數(shù)據(jù)元素只能是 單個字符 。 21一個字符串中 任意個

29、連續(xù)字符構(gòu)成的部分 稱為該串的子串。22子串 ”str” 在主串 ”datastructure” 中的位置是 5 。23二維數(shù)組M的每個元素是6個字符組成的串,行下標i的范圍從0到8,列下標j的范圍從1到10,則存放M至少需要 540個字節(jié);M的第8列和第5行共占108個字節(jié)。24稀疏矩陣一般的壓縮存儲方法有兩種,即 三元組表 和 十字鏈表 。25廣義表(a),(b),c),(d)的長度是 3 ,深度是 4 。26在一棵二叉樹中,度為零的結(jié)點的個數(shù)為n0,度為2 的結(jié)點的個數(shù)為n2,則有n0 n2+1 。27在有n個結(jié)點的二叉鏈表中,空鏈域的個數(shù)為_n+1_。28一棵有n個葉子結(jié)點的哈夫曼樹共

30、有_2n-1_個結(jié)點。29深度為5的二叉樹至多有 31 個結(jié)點。30若某二叉樹有20個葉子結(jié)點,有30個結(jié)點僅有一個孩子,則該二叉樹的總結(jié)點個數(shù)為 69 。31某二叉樹的前序遍歷序列是abdgcefh,中序序列是dgbaechf,其后序序列為 gdbehfca 。32線索二叉樹的左線索指向其 遍歷序列中的前驅(qū) ,右線索指向其遍歷序列中的后繼 。33在各種查找方法中,平均查找長度與結(jié)點個數(shù)n無關的查找方法是 散列查找法 。34在分塊索引查找方法中,首先查找 索引表 ,然后查找相應的 塊表 。35一個無序序列可以通過構(gòu)造一棵 二叉排序 樹而變成一個有序序列,構(gòu)造樹的過程即為對無序序列進行排序的過程

31、。36具有10個頂點的無向圖,邊的總數(shù)最多為_45_。37已知圖G的鄰接表如圖所示,其從頂點v1出發(fā)的深度優(yōu)先搜索序列為_v1v2v3v6v5v4_,其從頂點v1出發(fā)的廣度優(yōu)先搜索序列為_v1v2v5v4v3v6_。38索引是為了加快檢索速度而引進的一種數(shù)據(jù)結(jié)構(gòu)。一個索引隸屬于某個數(shù)據(jù)記錄集,它由若干索引項組成,索引項的結(jié)構(gòu)為 關鍵字 和 關鍵字對應記錄的地址 。39Prim 算法生成一個最小生成樹每一步選擇都要滿足 邊的總數(shù)不超過n-1 , 當前選擇的邊的權(quán)值是候選邊中最小的 , 選中的邊加入樹中不產(chǎn)生回路 三項原則。40在一棵m階B樹中,除根結(jié)點外,每個結(jié)點最多有 m 棵子樹,最少有 m/

32、2 棵子樹。三、判斷題。1在決定選取何種存儲結(jié)構(gòu)時,一般不考慮各結(jié)點的值如何。()2抽象數(shù)據(jù)類型(ADT)包括定義和實現(xiàn)兩方面,其中定義是獨立于實現(xiàn)的,定義僅給出一個ADT的邏輯特性,不必考慮如何在計算機中實現(xiàn)。( )3抽象數(shù)據(jù)類型與計算機內(nèi)部表示和實現(xiàn)無關。( )4順序存儲方式插入和刪除時效率太低,因此它不如鏈式存儲方式好。( )5線性表采用鏈式存儲結(jié)構(gòu)時,結(jié)點和結(jié)點內(nèi)部的存儲空間可以是不連續(xù)的。( )6對任何數(shù)據(jù)結(jié)構(gòu)鏈式存儲結(jié)構(gòu)一定優(yōu)于順序存儲結(jié)構(gòu)。( )7順序存儲方式只能用于存儲線性結(jié)構(gòu)。( )8集合與線性表的區(qū)別在于是否按關鍵字排序。( )9線性表中每個元素都有一個直接前驅(qū)和一個直接后

33、繼。( )10線性表就是順序存儲的表。( )11取線性表的第i個元素的時間同i的大小有關。( )12循環(huán)鏈表不是線性表。( )13鏈表是采用鏈式存儲結(jié)構(gòu)的線性表,進行插入、刪除操作時,在鏈表中比在順序表中效率高。( )14雙向鏈表可隨機訪問任一結(jié)點。( )15在單鏈表中,給定任一結(jié)點的地址p,則可用下述語句將新結(jié)點s插入結(jié)點p的后面 :p-next = s; s-next = p-next; ( )16隊列是一種插入和刪除操作分別在表的兩端進行的線性表,是一種先進后出的結(jié)構(gòu)。( )17. 串是一種特殊的線性表,其特殊性體現(xiàn)在可以順序存儲。( )18長度為1的串等價于一個字符型常量。( )19空

34、串和空白串是相同的。()20數(shù)組元素的下標值越大,存取時間越長。( )21用鄰接矩陣法存儲一個圖時,在不考慮壓縮存儲的情況下,所占用的存儲空間大小只與圖中結(jié)點個數(shù)有關,而與圖的邊數(shù)無關。( )22一個廣義表的表頭總是一個廣義表。( )23一個廣義表的表尾總是一個廣義表。( )24廣義表( a ), b), c ) 的表頭是( a ), b),表尾是( c )。( ) 25二叉樹的后序遍歷序列中,任意一個結(jié)點均處在其孩子結(jié)點的后面。( )26度為2的有序樹是二叉樹。( )27二叉樹的前序遍歷序列中,任意一個結(jié)點均處在其孩子結(jié)點的前面。( )28用一維數(shù)組存儲二叉樹時,總是以前序遍歷順序存儲結(jié)點。

35、()29若已知一棵二叉樹的前序遍歷序列和后序遍歷序列,則可以恢復該二叉樹。( )30在哈夫曼樹中,權(quán)值最小的結(jié)點離根結(jié)點最近。( )31強連通圖的各頂點間均可達。( )32對于任意一個圖,從它的某個結(jié)點進行一次深度或廣度優(yōu)先遍歷可以訪問到該圖的每個頂點。( )33在待排序的記錄集中,存在多個具有相同鍵值的記錄,若經(jīng)過排序,這些記錄的相對次序仍然保持不變,稱這種排序為穩(wěn)定排序。( )34在平衡二叉樹中,任意結(jié)點左右子樹的高度差(絕對值)不超過1。( )35拓撲排序是按AOE網(wǎng)中每個結(jié)點事件的最早發(fā)生時間對結(jié)點進行排序。( ) 36冒泡排序算法關鍵字比較的次數(shù)與記錄的初始排列次序無關。( )37對

36、線性表進行折半查找時,要求線性表必須以鏈式方式存儲,且結(jié)點按關鍵字有序排列。( )38散列法存儲的思想是由關鍵字值決定數(shù)據(jù)的存儲地址。( )39二叉樹為二叉排序樹的充分必要條件是其任一結(jié)點的值均大于其左孩子的值、小于其右孩子的值。( )40具有n個結(jié)點的二叉排序樹有多種,其中樹高最小的二叉排序樹是最佳的。( )41直接選擇排序算法在最好情況下的時間復雜度為O(n)。( )一、填空題1. 數(shù)據(jù)結(jié)構(gòu)是一門研究非數(shù)值計算的程序設計問題中計算機的 操作對象 以及它們之間的 關系 和運算等的學科。2. 數(shù)據(jù)結(jié)構(gòu)被形式地定義為(D, R),其中D是 數(shù)據(jù)元素 的有限集合,R是D上的 關系 有限集合。3.

37、數(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)中元素之間存在一對一關系,樹形結(jié)構(gòu)中元素之間存在一對多關系,圖形結(jié)構(gòu)中元素之間存在多對多關系。6 在線性結(jié)構(gòu)中,第一個結(jié)點 沒有 前驅(qū)結(jié)點,其余每個結(jié)點有且只有 1個前驅(qū)結(jié)點;最后一個結(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ū)

38、結(jié)點數(shù)和后續(xù)結(jié)點數(shù)可以 任意多個 。9數(shù)據(jù)的存儲結(jié)構(gòu)可用四種基本的存儲方法表示,它們分別是順序 、 鏈式 、 索引 和 散列 。10. 數(shù)據(jù)的運算最常用的有5種,它們分別是插入 、 刪除、修改、 查找 、排序。11. 一個算法的效率可分為 時間 效率和 空間 效率。12. 在順序表中插入或刪除一個元素,需要平均移動 表中一半元素,具體移動的元素個數(shù)與 表長和該元素在表中的位置 有關。13. 線性表中結(jié)點的集合是 有限 的,結(jié)點間的關系是 一對一 的。14. 向一個長度為n的向量的第i個元素(1in+1)之前插入一個元素時,需向后移動 n-i+1 個元素。15. 向一個長度為n的向量中刪除第i個

39、元素(1in)時,需向前移動 n-i 個元素。16. 在順序表中訪問任意一結(jié)點的時間復雜度均為 O(1) ,因此,順序表也稱為 隨機存取 的數(shù)據(jù)結(jié)構(gòu)。17. 順序表中邏輯上相鄰的元素的物理位置 必定相鄰。單鏈表中邏輯上相鄰的元素的物理位置 不一定 相鄰。18在單鏈表中,除了首元結(jié)點外,任一結(jié)點的存儲位置由 其直接前驅(qū)結(jié)點的鏈域的值 指示。19 在n個結(jié)點的單鏈表中要刪除已知結(jié)點*p,需找到它的前驅(qū)結(jié)點的地址,其時間復雜度為O(n)。20. 向量、棧和隊列都是 線性 結(jié)構(gòu),可以在向量的 任何 位置插入和刪除元素;對于棧只能在 棧頂 插入和刪除元素;對于隊列只能在 隊尾 插入和 隊首 刪除元素。2

40、1. 棧是一種特殊的線性表,允許插入和刪除運算的一端稱為 棧頂 。不允許插入和刪除運算的一端稱為 棧底 。22. 隊列 是被限定為只能在表的一端進行插入運算,在表的另一端進行刪除運算的線性表。23. 不包含任何字符(長度為0)的串 稱為空串; 由一個或多個空格(僅由空格符)組成的串 稱為空白串。24. 子串的定位運算稱為串的模式匹配; 被匹配的主串 稱為目標串, 子串 稱為模式。25. 假設有二維數(shù)組A68,每個元素用相鄰的6個字節(jié)存儲,存儲器按字節(jié)編址。已知A的起始存儲位置(基地址)為1000,則數(shù)組A的體積(存儲量)為 288 B ;末尾元素A57的第一個字節(jié)地址為 1282 ;若按行存儲

41、時,元素A14的第一個字節(jié)地址為 (8+4)6+1000=1072 ;若按列存儲時,元素A47的第一個字節(jié)地址為 (674)61000)1276 。26 由個結(jié)點所構(gòu)成的二叉樹有 5 種形態(tài)。 27. 一棵深度為6的滿二叉樹有 n1+n2=0+ n2= n0-1=31 個分支結(jié)點和 26-1 =32 個葉子。注:滿二叉樹沒有度為1的結(jié)點,所以分支結(jié)點數(shù)就是二度結(jié)點數(shù)。28 一棵具有個結(jié)點的完全二叉樹,它的深度為 9 。( 注:用 log2(n) +1= 8.xx +1=929設一棵完全二叉樹有700個結(jié)點,則共有 350 個葉子結(jié)點。答:最快方法:用葉子數(shù)n/2350 30 設一棵完全二叉樹具

42、有1000個結(jié)點,則此完全二叉樹有 500 個葉子結(jié)點,有 499 個度為2的結(jié)點,有 1 個結(jié)點只有非空左子樹,有 0 個結(jié)點只有非空右子樹。答:最快方法:用葉子數(shù)n/2500 ,n2=n0-1=499。 另外,最后一結(jié)點為2i屬于左葉子,右葉子是空的,所以有1個非空左子樹。完全二叉樹的特點決定不可能有左空右不空的情況,所以非空右子樹數(shù)0.31在數(shù)據(jù)的存放無規(guī)律而言的線性表中進行檢索的最佳方法是 順序查找(線性查找) 。32. 線性有序表(a1,a2,a3,a256)是從小到大排列的,對一個給定的值k,用二分法檢索表中與k相等的元素,在查找不成功的情況下,最多需要檢索 8 次。設有100個結(jié)

43、點,用二分法查找時,最大比較次數(shù)是 7 。33. 假設在有序線性表a20上進行折半查找,則比較一次查找成功的結(jié)點數(shù)為1;比較兩次查找成功的結(jié)點數(shù)為 2 ;比較四次查找成功的結(jié)點數(shù)為 8 ;平均查找長度為 3.7 。解:顯然,平均查找長度O(log2n)5次(25)。但具體是多少次,則不應當按照公式來計算(即(21log221)/204.6次并不正確?。R驗檫@是在假設n2m-1的情況下推導出來的公式。應當用窮舉法羅列:全部元素的查找次數(shù)為(122438455)74; ASL74/20=3.7 !34折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,

44、它將依次與表中元素 28,6,12,20 比較大小。35. 在各種查找方法中,平均查找長度與結(jié)點個數(shù)n無關的查找方法是 散列查找 。36. 散列法存儲的基本思想是由 關鍵字的值 決定數(shù)據(jù)的存儲地址。二、判斷正誤(在正確的說法后面打勾,反之打叉)( )1. 鏈表的每個結(jié)點中都恰好包含一個指針。 ( )2. 鏈表的物理存儲結(jié)構(gòu)具有同鏈表一樣的順序。錯,鏈表的存儲結(jié)構(gòu)特點是無序,而鏈表的示意圖有序。( )3. 鏈表的刪除算法很簡單,因為當刪除鏈中某個結(jié)點后,計算機會自動地將后續(xù)的各個單元向前移動。錯,鏈表的結(jié)點不會移動,只是指針內(nèi)容改變。( )4. 線性表的每個結(jié)點只能是一個簡單類型,而鏈表的每個結(jié)點可以是一個復雜類型。( )5. 順序表結(jié)構(gòu)適宜于進行順序存取,而鏈表適宜于進行隨機存取。 ( )6. 順序存儲方式的優(yōu)點是存儲密度大,且插入、刪除運算效率高。( )7. 線性表在物理存儲空間中也一定是連續(xù)的。( )8. 線性表在順序存儲時,邏輯上相鄰的元素未必在存儲的物理位置次序上相鄰。( )9. 順序存儲方式只能用于存儲線性結(jié)構(gòu)。( )10. 線性表的邏輯順序與存儲順序總是一致的。( )11. 線性表的每個結(jié)點只能是一個簡單類型,而鏈表的每個結(jié)點可以是一個復雜類型。 ( )12. 在表結(jié)構(gòu)中最常用的是線性表,棧和隊列不太常用。 ( )13. 棧是一種

溫馨提示

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

評論

0/150

提交評論