數(shù)據(jù)結(jié)構(gòu)試題及答案_第1頁
數(shù)據(jù)結(jié)構(gòu)試題及答案_第2頁
數(shù)據(jù)結(jié)構(gòu)試題及答案_第3頁
數(shù)據(jù)結(jié)構(gòu)試題及答案_第4頁
數(shù)據(jù)結(jié)構(gòu)試題及答案_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1By Fanr一、1.1.一、單選題(每題棧和隊(duì)列的共同特點(diǎn)是(D2 分,共)。 A20 分)A.只允許在端點(diǎn)處插入和刪除元素B.都是先進(jìn)后出C.都是先進(jìn)先出D.沒有共同點(diǎn)2. 2. 用鏈接方式存儲的隊(duì)列,在進(jìn)行插入運(yùn)算時( C ).DA. 僅修改頭指針B. 頭、尾指針都要修改C. 僅修改尾指針D.頭、尾指針可能都要修改3. 3. 以下數(shù)據(jù)結(jié)構(gòu)中哪一個是非線性結(jié)構(gòu)?( D )A.隊(duì)列B. 棧C. 線性表D. 二叉樹4.4.設(shè)有一個二維數(shù)組 Am n ,假設(shè) A00存放位置在 644(10),A22 存放位置在676(10),每個元素占一個空間,問 A33 (10)存放在什么位置?腳注 (10

2、)表示用 10 進(jìn)制表示。 CCA 688B 678C692D6965.5.樹最適合用來表示 ( C) 。CA. 有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分支層次關(guān)系的數(shù)據(jù)D.元素之間無聯(lián)系的數(shù)據(jù)6.6.二叉樹的第 k 層的結(jié)點(diǎn)數(shù)最多為 ( D).DkB.2K+1C.2K-1k-1A2 -1D. 27.7.若有 18 個元素的有序表存放在一維數(shù)組A19 中,第一個元素放A1 中,現(xiàn)進(jìn)行二分查找,則查找 A 3的比較序列的下標(biāo)依次為 (B)DA. 1,2,3B. 9, 5,2,3C. 9,5,3D. 9, 4, 2,38.8.對 n 個記錄的文件進(jìn)行快速排序,所需要的輔助存儲空間大致為B C

3、A. O (1)B. O( n)C. O(1og2n)D. O(n2)9.9.對于線性表( 7, 34,55,25,64, 46, 20,10)進(jìn)行散列存儲時,若選用H(K )=K %9作為散列函數(shù),則散列地址為1 的元素有( D)個, DA 1B 2C3D 410.10. 設(shè)有 6 個結(jié)點(diǎn)的無向圖,該圖至少應(yīng)有 (A)條邊才能確保是一個連通圖。AA.5B.6C.7D.8二、二、填空題(每空1 分,共 26 分)1.1.通常從四個方面評價算法的質(zhì)量:正確性 、易讀性 、強(qiáng)壯性 和高效性 。2.2.一個算法的時間復(fù)雜度為 ( n3 +n2log2n+14n)/n2,其數(shù)量級表示為O(n)。23.

4、3.假定一棵樹的廣義表表示為A (C, D( E, F, G), H (I ,J),則樹中所含的結(jié)點(diǎn)數(shù)為9 個,樹的深度為3,樹的度為3。4. 4.后綴算式 9 2 3 +- 10 2 / -的值為 _。中綴算式( 3+4X ) -2Y/3 對應(yīng)的后綴算式為_。5. 5.若用鏈表存儲一棵二叉樹時,每個結(jié)點(diǎn)除數(shù)據(jù)域外,還有指向左孩子和右孩子的兩個指針。在這種存儲結(jié)構(gòu)中,n 個結(jié)點(diǎn)的二叉樹共有2n_個指針域,其中有n-1_個指針域是存放了地址,有n+1_個指針是空指針。6. 6. 對于一個具有 n 個頂點(diǎn)和 e 條邊的有向圖和無向圖,在其對應(yīng)的鄰接表中,所含邊結(jié)點(diǎn)分別有e_個和 2e_個。7. 7

5、.AOV 網(wǎng)是一種 有向無回路 _的圖。8.8.在一個具有n 個頂點(diǎn)的無向完全圖中,包含有n(n-1)/2 _條邊,在一個具有n 個頂點(diǎn)的有向完全圖中,包含有n(n-1) _條邊。9. 9.假定一個線性表為 (12,23,74,55,63,40) ,若按 Key % 4 條件進(jìn)行劃分,使得同一余數(shù)的元素成為一 個 子 表 , 則 得 到 的 四 個 子 表 分 別 為 (12,40) _ 、( )_、(74)_和(23,55,63)_。10.10. 向一棵 B_樹插入元素的過程中,若最終引起樹根結(jié)點(diǎn)的分裂,則新樹比原樹的高度增加一_。11.11. 在堆排序的過程中,對任一分支結(jié)點(diǎn)進(jìn)行篩運(yùn)算的時

6、間復(fù)雜度為O(log2n) _,整個堆排序過程的時間復(fù)雜度為 O(nlog2n12. 12. 在快速排序、堆排序、歸并排序中,歸并 _排序是穩(wěn)定的。三、三、運(yùn)算題(每題6 分,共 24 分)1.1.在如下數(shù)組 A 中鏈接存儲了一個線性表,表頭指針為A 0.next ,試寫出該線性表。A01234567data605078903440next35720412.2.請畫出圖10 的鄰接矩陣和鄰接表。3.3.已知一個圖的頂點(diǎn)集V 和邊集 E 分別為:V=1,2,3,4,5,6,7;E=(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,圖 10(3,5)12,(3

7、,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25;用克魯斯卡爾算法得到最小生成樹,試寫出在最小生成樹中依次得到的各條邊。4.4.畫出向小根堆中加入數(shù)據(jù)4,2,5,8,3時,每加入一個數(shù)據(jù)后堆的變化。四、四、閱讀算法(每題7 分,共 14 分)1. 1. LinkList mynote(LinkList L)/L 是不帶頭結(jié)點(diǎn)的單鏈表的頭指針3if(L&L-next)q=L ; L=L next; p=L ;S1:while(p next) p=p next ;S2:pnext=q ;qnext=NULL ;returnL ;請回答下列問題:( 1)說明語句 S1 的功能;

8、( 2)說明語句組 S2 的功能;( 3)設(shè)鏈表表示的線性表為( a1 ,a2, ,an ), 寫出算法執(zhí)行后的返回值所表示的線性表。2. 2. void ABC(BTNode * BT)ifBT ABC (BT-left);ABC (BT-right);coutdatadata)item=BST-data;/ 查找成功return true_;else if(itemdata)returnFind(_ BSTeft_,item);elsereturn Find(_ BSTight _,item);/if六、六、編寫算法(共8 分)4統(tǒng)計出單鏈表HL 中結(jié)點(diǎn)的值等于給定值X 的結(jié)點(diǎn)數(shù)。int

9、CountX(LNode* HL,ElemType x)參考答案一、一、單選題(每題2 分,共 20 分)1.A 2.D3.D4.C 5.C6.D7.D8.C9.D 10.A二、二、填空題(每空1 分,共 26 分)1.1.正確性易讀性強(qiáng)壯性高效率2.2.O(n)3.3.9334.4.-134X*+2Y*3/-5.5.2nn-1n+16.6.e2e7.7.有向無回路8.8.n(n-1)/2n(n-1)9.9.( 12, 40)()( 74)( 23,55, 63)10.10.增加 111.11.O(log 2n)O(nlog 2n)12.12.歸并三、三、運(yùn)算題(每題6 分,共 24 分)1.

10、 1. 線性表為:(78,50,40,60,34,90)011101010111011101012. 2. 鄰接矩陣: 01110鄰接表如圖11 所示:圖 113. 3.用克魯斯卡爾算法得到的最小生成樹為:(1,2)3,(4,6)4,(1,3)5,(1,4)8,(2,5)10,(4,7)204. 4. 見圖 1244222224454545883235圖 12四、四、8閱讀算法(每題7 分,共 14 分)41. 1. (1)查詢鏈表的尾結(jié)點(diǎn)5( 2)將第一個結(jié)點(diǎn)鏈接到鏈表的尾部,作為新的尾結(jié)點(diǎn)( 3)返回的線性表為( a2,a3, ,an,a1)2. 2. 遞歸地后序遍歷鏈?zhǔn)酱鎯Φ亩鏄?。五?/p>

11、五、算法填空(每空2 分,共8 分)trueBST-leftBST-right六、六、編寫算法(8 分)int CountX(LNode* HL,ElemType x)int i=0; LNode* p=HL;/i為計數(shù)器while(p!=NULL) if (P-data=x) i+; p=p-next;/while,出循環(huán)時 i 中的值即為x 結(jié)點(diǎn)個數(shù)return i;/CountX吉首大學(xué)試題庫一、 一、單選題(每小題 2 分,共 8 分)1、1、在一個長度為 n 的順序線性表中順序查找值為x 的元素時, 查找成功時的平均查找長度(即x 與元素的平均比較次數(shù),假定查找每個元素的概率都相等)

12、為(B )。CAnBn/2C(n+1)/2D(n-1)/22、2、在一個單鏈表中 ,若 q 所指結(jié)點(diǎn)是 p 所指結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn) ,若在 q 與 p 之間插入一個 s 所指的結(jié)點(diǎn) ,則執(zhí)行 (D )。Aslink=p link;plink=s;Bp link=s;slink=q;C p link=s link;s link=p;Dq link=s;slink =p;3、3、棧的插入和刪除操作在(A )進(jìn)行。A棧頂B棧底C任意位置D指定位置4、4、由權(quán)值分別為11,8,6,2, 5 的葉子結(jié)點(diǎn)生成一棵哈夫曼樹,它的帶權(quán)路徑長度為(B )A24B71C48D53二、 二、填空題(每空 1 分,共 3

13、2 分)1、1、數(shù)據(jù)的邏輯結(jié)構(gòu)被分為_集合 _、 線形 _、樹_和圖_四種。2、2、一種抽象數(shù)據(jù)類型包括_數(shù)據(jù)描述 _和 _操作聲名 _兩個部分。3、3、在下面的數(shù)組a 中鏈接存儲著一個線性表,表頭指針為ao.next,則該線性表為 _(38,56,25,60,42,74,)_。a012345678605642387425datanext43762014、 4、在以HL為表頭指針的帶表頭附加結(jié)點(diǎn)的單鏈表和循環(huán)單鏈表中,判斷鏈表為空的條件分別為 _和_。5、 5、用具有n 個元素的一維數(shù)組存儲一個循環(huán)隊(duì)列,則其隊(duì)首指針總是指向隊(duì)首元素的6_,該循環(huán)隊(duì)列的最大長度為_。6、 6、當(dāng)堆棧采用順序存儲

14、結(jié)構(gòu)時,棧頂元素的值可用表示;當(dāng)堆棧采用鏈接存儲結(jié)構(gòu)時,棧頂元素的值可用_ 表示。7、 7、一棵高度為5 的二叉樹中最少含有_個結(jié)點(diǎn),最多含有_個結(jié)點(diǎn);一棵高度為5 的理想平衡樹中,最少含有_個結(jié)點(diǎn),最多含有_ 個結(jié)點(diǎn)。8、 8、在圖的鄰接表中,每個結(jié)點(diǎn)被稱為_,通常它包含三個域:一是_;二是 _;三是 _。9、 9、在一個索引文件的索引表中,每個索引項(xiàng)包含對應(yīng)記錄的_和 _兩項(xiàng)數(shù)據(jù)。10、10、假定一棵樹的廣義表表示為A (B( C,D (E,F(xiàn),G),H ( I, J),則樹中所含的結(jié)點(diǎn)數(shù)為 _個,樹的深度為 _,樹的度為 _, 結(jié)點(diǎn) H 的雙親結(jié)點(diǎn)為 _,孩子結(jié)點(diǎn)為 _ 。11、11、在

15、堆排序的過程中,對任一分支結(jié)點(diǎn)進(jìn)行篩運(yùn)算的時間復(fù)雜度為_, 整個堆排序過程的時間復(fù)雜度為_。12、12、在對 m 階的 B_樹插入元素的過程中,每向一個結(jié)點(diǎn)插入一個索引項(xiàng)(葉子結(jié)點(diǎn)中的索引項(xiàng)為關(guān)鍵字和空指針)后,若該結(jié)點(diǎn)的索引項(xiàng)數(shù)等于_個,則必須把它分裂為_個結(jié)點(diǎn)。三、 三、運(yùn)算題(每小題6 分,共 24 分)1、1、已知一組記錄的排序碼為(46,79,56,38,40,80,95,24),寫出對其進(jìn)行快速排序的每一次劃分結(jié)果。2、 2、一個線性表為 B= (12,23,45, 57, 20, 03, 78, 31, 15, 36),設(shè)散列表為 HT0.12 ,散列函數(shù)為 H(key )= k

16、ey % 13 并用線性探查法解決沖突,請畫出散列表,并計算等概率情況下查找成功的平均查找長度。3、 3、已知一棵二叉樹的前序遍歷的結(jié)果序列是ABECKFGHIJ ,中序遍歷的結(jié)果是EBCDAFHIGJ ,試寫出這棵二叉樹的后序遍歷結(jié)果。4、 4、已知一個圖的頂點(diǎn)集V 各邊集 G 如下:V = 0 ,1,2, 3,4,5,6, 7, 8,9 ;E = ( 0,1),(0,4),(1,2),( 1,7),(2,8),( 3, 4),( 3 ,8),(5,6),( 5, 8),( 5,9),(6,7),( 7,8),(8,9) 當(dāng)它用鄰接矩陣表示和鄰接表表示時, 分別寫出從頂點(diǎn) V0 出發(fā)按深度優(yōu)

17、先搜索遍歷得到的頂點(diǎn)序列和按廣度優(yōu)先搜索遍歷等到的頂點(diǎn)序列。假定每個頂點(diǎn)鄰接表中的結(jié)點(diǎn)是按頂點(diǎn)序號從大到小的次序鏈接的。圖深度優(yōu)先序列廣度優(yōu)先序列7鄰接矩陣表示時鄰接表表示時四、 四、閱讀算法,回答問題(每小題8 分,共 16 分)1、假定從鍵盤上輸入一批整數(shù),依次為:786345309134 1,請寫出輸出結(jié)果。# include # include consst int stackmaxsize = 30; typedef int elemtype;struct stack elemtype stack stackmaxsize; int top;# include “stack.h”Vo

18、idmain ( )stack a;initstack(a);int x;cin x;while (x! = -1) push (a, x );cin x;while (!stackempty (a)cout pop (a) ” ;cout end1;該算法的輸出結(jié)果為:_.2、閱讀以下二叉樹操作算法,指出該算法的功能。Template voidBinTree :8unknown (BinTreeNode*t)BinTreeNode*p =t, *temp;if (p!=NULL) temp = pleftchild;p leftchild = p rightchild;p rightchil

19、d = temp;unknown(p leftchild);undnown(p rightchild);該算法的功能是:_五、 五、算法填空,在畫有橫線的地方填寫合適的內(nèi)容(10 分)對順序存儲的有序表進(jìn)行二分查找的遞歸算法。int Binsch( ElemType A ,int low ,int high,KeyType K )if (low = high)int mid = 1if ( K= = A mid .key )return mid;else if ( K datedate)return 1;if(s1 dates2date)return1; ;if(if()return 1;)r

20、eturn1 ; ;31閱讀下面的算法LinkList mynote(LinkList L)/L 是不帶頭結(jié)點(diǎn)的單鏈表的頭指針if(L&L-next)q=L ; L=L next; p=L ;S1:while(p next) p=p next ;S2:pnext=q ;qnext=NULL;returnL ;請回答下列問題:( 1)說明語句 S1 的功能;( 2)說明語句組 S2 的功能;( 3)設(shè)鏈表表示的線性表為( a1 ,a2, ,an ), 寫出算法執(zhí)行后的返回值所表示的線性表。32假設(shè)兩個隊(duì)列共享一個循環(huán)向量空間(參見右下圖),其類型 Queue2 定義如下:typedef stru

21、ctDateType dataMaxSize ;int front2,rear2 ;14Queue2;對于 i=0 或 1,fronti 和 reari 分別為第 i 個隊(duì)列的頭指針和尾指針。請對以下算法填空,實(shí)現(xiàn)第i 個隊(duì)列的入隊(duì)操作。int EnQueue (Queue2*Q,int i,DateType x)/ 若第i 個隊(duì)列不滿,則元素x 入隊(duì)列,并返回1;否則返回0if(i1)return 0;if(Q reari=Q frontreturn0 ;Qdata=x ;Qreari=;return1;33已知二叉樹的存儲結(jié)構(gòu)為二叉鏈表,閱讀下面算法。typedef struct node

22、 DateType data;Struct node * next ;ListNode ;typedef ListNode * LinkList;LinkList Leafhead=NULL;Void Inorder (BinTree T)LinkList s ;If(T)Inorder(T lchild) ;If (!T lchild)&(!Trchild)s=(ListNode*)malloc(sizeof(ListNode);s data=T data;s next=Leafhead;Leafhead=s;Inorder(T rchild) ;對于如下所示的二叉樹15( 1)畫出執(zhí)行上述算法后所建立的結(jié)構(gòu);( 2)說明該算法的功能。五、算法設(shè)計題(本題共10 分)34閱讀下列函數(shù)arrange()int arrange(int a,int 1,int h,int x)/1 和 h 分別為數(shù)據(jù)區(qū)的下界和上界int i,j,t ;i=1; j=h ;while(ij)while(i=x)j-;while(i=x)i+if(ij);t=aj ;aj=ai;ai=t ;if(ainexts2=s2next s2(或 s2!=NULL 或

溫馨提示

  • 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

提交評論