寧波大學(xué)數(shù)據(jù)結(jié)構(gòu)試題庫
《寧波大學(xué)數(shù)據(jù)結(jié)構(gòu)試題庫》由會(huì)員分享,可在線閱讀,更多相關(guān)《寧波大學(xué)數(shù)據(jù)結(jié)構(gòu)試題庫(103頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、精選優(yōu)質(zhì)文檔-----傾情為你奉上 一、?????????????????? 單選題(每題 2 分,共20分) 1. 1.???? 對一個(gè)算法的評價(jià),不包括如下(B )方面的內(nèi)容。 A.健壯性和可讀性 B.并行性 C.正確性 D.時(shí)空復(fù)雜度 2. 2.???? 在帶有頭結(jié)點(diǎn)的單鏈表HL中,要向表頭插入一個(gè)由指針p指向的結(jié)點(diǎn),則執(zhí)行( )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; C. p->next=HL; p=HL;
2、 D. HL=p; p->next=HL; 3. 3.???? 對線性表,在下列哪種情況下應(yīng)當(dāng)采用鏈表表示?( ) A.經(jīng)常需要隨機(jī)地存取元素 B.經(jīng)常需要進(jìn)行插入和刪除操作 C.表中元素需要占據(jù)一片連續(xù)的存儲(chǔ)空間 D.表中元素的個(gè)數(shù)不變 4. 4.???? 一個(gè)棧的輸入序列為1 2 3,則下列序列中不可能是棧的輸出序列的是( C ) A. 2 3 1 B. 3 2 1 C. 3 1 2 D. 1 2 3 5. 5.???? AOV網(wǎng)是一種( )。
3、 A.有向圖 B.無向圖 C.無向無環(huán)圖 D.有向無環(huán)圖 6. 6.???? 采用開放定址法處理散列表的沖突時(shí),其平均查找長度( )。 A.低于鏈接法處理沖突 B. 高于鏈接法處理沖突 C.與鏈接法處理沖突相同 D.高于二分查找 7. 7.???? 若需要利用形參直接訪問實(shí)參時(shí),應(yīng)將形參變量說明為( )參數(shù)。 A.值 B.函數(shù) C.指針 D.引用 8. 8.???? 在稀疏矩陣的帶行指針向量的鏈接存儲(chǔ)中,每個(gè)單鏈表中的結(jié)點(diǎn)都具有相同的( )。 A.行號(hào)
4、 B.列號(hào) C.元素值 D.非零元素個(gè)數(shù) 9. 9.???? 快速排序在最壞情況下的時(shí)間復(fù)雜度為( )。 A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2) 10. 10. 從二叉搜索樹中查找一個(gè)元素時(shí),其時(shí)間復(fù)雜度大致為( )。 A. O(n) B. O(1) C. O(log2n) D. O(n2) ? 二、 二、?????????????????? 運(yùn)算題(每題 6 分,共24分) 1. 1.??????? 數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)及其相互之間的
5、______________。當(dāng)結(jié)點(diǎn)之間存在M對N(M:N)的聯(lián)系時(shí),稱這種結(jié)構(gòu)為_____________________。 2. 2.??????? 隊(duì)列的插入操作是在隊(duì)列的___尾______進(jìn)行,刪除操作是在隊(duì)列的____首______進(jìn)行。 3. 3.??????? 當(dāng)用長度為N的數(shù)組順序存儲(chǔ)一個(gè)棧時(shí),假定用top==N表示棧空,則表示棧滿的條件是___top==0___(要超出才為滿)_______________。 4. 4.??????? 對于一個(gè)長度為n的單鏈存儲(chǔ)的線性表,在表頭插入元素的時(shí)間復(fù)雜度為_________,在表尾插入元素的時(shí)間復(fù)雜度為___________
6、_。 5. 5.??????? 設(shè)W為一個(gè)二維數(shù)組,其每個(gè)數(shù)據(jù)元素占用4個(gè)字節(jié),行下標(biāo)i從0到7 ,列下標(biāo)j從0到3 ,則二維數(shù)組W的數(shù)據(jù)元素共占用__(dá)_____個(gè)字節(jié)。W中第6 行的元素和第4 列的元素共占用__(dá)_______個(gè)字節(jié)。若按行順序存放二維數(shù)組W,其起始地址為100,則二維數(shù)組元素W[6,3]的起始地址為__(dá)________。 6. 6.??????? 廣義表A= (a,(a,b),((a,b),c)),則它的深度為____________,它的長度為____________。 7. 7.??????? 二叉樹是指度為2的____________________樹。一棵結(jié)點(diǎn)
7、數(shù)為N的二叉樹,其所有結(jié)點(diǎn)的度的總和是_____________。 8. 8.??????? 對一棵二叉搜索樹進(jìn)行中序遍歷時(shí),得到的結(jié)點(diǎn)序列是一個(gè)______________。對一棵由算術(shù)表達(dá)式組成的二叉語法樹進(jìn)行后序遍歷得到的結(jié)點(diǎn)序列是該算術(shù)表達(dá)式的__________________。 9. 9.??????? 對于一棵具有n個(gè)結(jié)點(diǎn)的二叉樹,用二叉鏈表存儲(chǔ)時(shí),其指針總數(shù)為_____________個(gè),其中_______________個(gè)用于指向孩子,_________________個(gè)指針是空閑的。 10. 10.??? 若對一棵完全二叉樹從0開始進(jìn)行結(jié)點(diǎn)的編號(hào),并按此編號(hào)把它順序存
8、儲(chǔ)到一維數(shù)組A中,即編號(hào)為0的結(jié)點(diǎn)存儲(chǔ)到A[0]中。其余類推,則A[ i ]元素的左孩子元素為________,右孩子元素為_______________,雙親元素為____________。 11. 11.??? 在線性表的散列存儲(chǔ)中,處理沖突的常用方法有________________________和_____________________________兩種。 12. 12.??? 當(dāng)待排序的記錄數(shù)較大,排序碼較隨機(jī)且對穩(wěn)定性不作要求時(shí),宜采用_______________排序;當(dāng)待排序的記錄數(shù)較大,存儲(chǔ)空間允許且要求排序是穩(wěn)定時(shí),宜采用_____________________
9、___排序。 ? 三、 三、?????????????????? 運(yùn)算題(每題6分,共24分) 1. 1.??????? 已知一個(gè)6′5稀疏矩陣如下所示, ? ? ? 試: (1) (1)??????? 寫出它的三元組線性表; (2) (2)??????? 給出三元組線性表的順序存儲(chǔ)表示。 2. 2.??????? 設(shè)有一個(gè)輸入數(shù)據(jù)的序列是 { 46, 25, 78, 62, 12, 80 }, 試畫出從空樹起,逐個(gè)輸入各個(gè)數(shù)據(jù)而生成的二叉搜索樹。 3. 3.??????? 對于圖6所示的有向圖若存儲(chǔ)它采用鄰接表,并且每個(gè)頂點(diǎn)鄰接表中的邊結(jié)點(diǎn)都是按照終點(diǎn)序號(hào)從
10、小到大的次序鏈接的,試寫出: (1) 從頂點(diǎn)①出發(fā)進(jìn)行深度優(yōu)先搜索所得到的深度優(yōu)先生成樹; (2) 從頂點(diǎn)②出發(fā)進(jìn)行廣度優(yōu)先搜索所得到的廣度優(yōu)先生成樹; 4. 4.??????? 已知一個(gè)圖的頂點(diǎn)集V和邊集E分別為: 圖6 V={1,2,3,4,5,6,7}; E={<2,1>,<3,2>,<3,6>,<4,3>,<4,5>,<4,6>,<5,1>,<5,7>,<6,1>,<6,2>,<6,5>}; 若存儲(chǔ)它采用鄰接表,并且每個(gè)頂點(diǎn)鄰接表中的邊結(jié)點(diǎn)都是按照終點(diǎn)序號(hào)從小到大的次序鏈接的,按主教材中介紹的拓樸排序算法進(jìn)行排序,試給出得到的拓樸排序的序列。 ?
11、 四、 四、?????????????????? 閱讀算法(每題7分,共14分) 1. 1.???????????????????? int Prime(int n) { int i=1; int x=(int) sqrt(n); while (++i<=x) if (n%i==0) break; if (i>x) return 1; else return 0; } (1) (1)???? 指出該算法的功能; (2) (2)???? 該算法的時(shí)間復(fù)雜度是多少? 2. 2.??????????????????
12、?? 寫出下述算法的功能: void AJ(adjlist GL, int i, int n) { Queue Q; InitQueue(Q); cout<
13、
{
int j=p->adjvex;
if(!visited[j])
{
cout<
14、其填寫完整。 Int Binsch(ElemType A[ ],int n,KeyType K) { int low=0; int high=n-1; while (low<=high) { int mid=_______________________________; if (K==A[mid].key) return mid; //查找成功,返回元素的下標(biāo) else if (K<[mid].key) ______________________________________; //在左子表上繼續(xù)查找 else _
15、_________________________________; //在右子表上繼續(xù)查找 } return -1; //查找失敗,返回-1 } ? 六、 六、?????????????????? 編寫算法(共8分) HL是單鏈表的頭指針,試寫出刪除頭結(jié)點(diǎn)的算法。 ElemType DeleFront(LNode * & HL) ? ? 參考答案 一、 一、???????????????????? 單選題(每題2分,共20分) 1.B 2.A 3.B 4.C 5.D 6.B 7.D 8.A 9.D 10.C 二、
16、 二、???????????????????? 填空題(每空1分,共26分) 1. 1.???????? 聯(lián)系 圖(或圖結(jié)構(gòu)) 2. 2.???????? 尾 首 3. 3.???????? top==0 4. 4.???????? O(1) O(n) 5. 5.???????? 128 44 108 6. 6.???????? 3 3 7. 7.???????? 6 5 5 1 5 1 3 2 -1 4 5 -2 5 1 5 6 3 7 圖7 有序 n-1 8. 8.????????
17、 有序序列 后綴表達(dá)式(或逆波蘭式) 9. 9.???????? 2n n-1 n+1 10. 10.???? 2i+1 2i+2 (i-1)/2 11. 11.???? 開放定址法 鏈接法 12. 12.???? 快速 歸并 三、 三、???????????????????? 運(yùn)算題(每題6分,共24分) 1. 1.???????? (1) ((1,5,1),(3,2,-1),(4,5,-2),(5,1,5),(6,3,7)) (3分) (2) 三元組線性表的順序存儲(chǔ)表示如圖7示。 2. 2.??
18、?????? 圖8 如圖8所示。 3. 3.???????? DFS:????… BFS:???…? 4. 4.???????? 拓樸排序?yàn)椋?4 3 6 5 7 2 1 四、 四、????????????????????? 閱讀算法(每題7分,共14分) 1. 1.???????? (1) 判斷n是否是素?cái)?shù)(或質(zhì)數(shù)) (2)O() 2. 2.???????? 功能為:從初始點(diǎn)vi出發(fā)廣度優(yōu)先搜索由鄰接表GL所表示的圖。 五、 五、????????????????????? 算法填空(8 分) (low+high
19、)/2 high=mid-1 low=mid+1
六、 六、????????????????????? 編寫算法(8分)
ElemType DeleFront(LNode * & HL)
{
if (HL==NULL){
cerr<<"空表"<
20、2 分,共20分) 1. 1.???? 棧和隊(duì)列的共同特點(diǎn)是( )。 A.只允許在端點(diǎn)處插入和刪除元素 B.都是先進(jìn)后出 C.都是先進(jìn)先出 D.沒有共同點(diǎn) 2. 2.???? 用鏈接方式存儲(chǔ)的隊(duì)列,在進(jìn)行插入運(yùn)算時(shí)( ). A. 僅修改頭指針 B. 頭、尾指針都要修改 C. 僅修改尾指針 D.頭、尾指針可能都要修改 3. 3.???? 以下數(shù)據(jù)結(jié)構(gòu)中哪一個(gè)是非線性結(jié)構(gòu)?( ) A. 隊(duì)列 B. 棧 C. 線性表 D
21、. 二叉樹 4. 4.???? 設(shè)有一個(gè)二維數(shù)組A[m][n],假設(shè)A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每個(gè)元素占一個(gè)空間,問A[3][3](10)存放在什么位置?腳注(10)表示用10進(jìn)制表示。 A.688 B.678 C.692 D.696 5. 5.???? 樹最適合用來表示( )。 A.有序數(shù)據(jù)元素 B.無序數(shù)據(jù)元素 C.元素之間具有分支層次關(guān)系的數(shù)據(jù) D.元素之間無聯(lián)系的數(shù)據(jù) 6. 6.???
22、? 二叉樹的第k層的結(jié)點(diǎn)數(shù)最多為( ). A.2k-1 B.2K+1 C.2K-1 D. 2k-1 7. 7.???? 若有18個(gè)元素的有序表存放在一維數(shù)組A[19]中,第一個(gè)元素放A[1]中,現(xiàn)進(jìn)行二分查找,則查找A[3]的比較序列的下標(biāo)依次為( ) A. 1,2,3 B. 9,5,2,3 C. 9,5,3 D. 9,4,2,3 8. 8.???? 對n個(gè)記錄的文件進(jìn)行快速排序,所需要的輔助存儲(chǔ)空間大致為 A. O(1) B. O(n) C. O(1og2
23、n) D. O(n2) 9. 9.???? 對于線性表(7,34,55,25,64,46,20,10)進(jìn)行散列存儲(chǔ)時(shí),若選用H(K)=K %9作為散列函數(shù),則散列地址為1的元素有( )個(gè), A.1 B.2 C.3 D.4 10. 10. 設(shè)有6個(gè)結(jié)點(diǎn)的無向圖,該圖至少應(yīng)有( )條邊才能確保是一個(gè)連通圖。 A.5 B.6 C.7 D.8 ? 二、 二、?????????????????? 填空題(每空1分,共26分) 1. 1.??????? 通常
24、從四個(gè)方面評價(jià)算法的質(zhì)量:_________、_________、_________和_________。 2. 2.??????? 一個(gè)算法的時(shí)間復(fù)雜度為(n3+n2log2n+14n)/n2,其數(shù)量級(jí)表示為________。 3. 3.??????? 假定一棵樹的廣義表表示為A(C,D(E,F(xiàn),G),H(I,J)),則樹中所含的結(jié)點(diǎn)數(shù)為__________個(gè),樹的深度為___________,樹的度為_________。 4. 4.??????? 后綴算式9 2 3 +- 10 2 / -的值為__________。中綴算式(3+4X)-2Y/3對應(yīng)的后綴算式為_______
25、________________________。 5. 5.??????? 若用鏈表存儲(chǔ)一棵二叉樹時(shí),每個(gè)結(jié)點(diǎn)除數(shù)據(jù)域外,還有指向左孩子和右孩子的兩個(gè)指針。在這種存儲(chǔ)結(jié)構(gòu)中,n個(gè)結(jié)點(diǎn)的二叉樹共有________個(gè)指針域,其中有________個(gè)指針域是存放了地址,有________________個(gè)指針是空指針。 6. 6.??????? 對于一個(gè)具有n個(gè)頂點(diǎn)和e條邊的有向圖和無向圖,在其對應(yīng)的鄰接表中,所含邊結(jié)點(diǎn)分別有_______個(gè)和________個(gè)。 7. 7.??????? AOV網(wǎng)是一種___________________的圖。 8. 8.??????? 在一個(gè)具有n個(gè)
26、頂點(diǎn)的無向完全圖中,包含有________條邊,在一個(gè)具有n個(gè)頂點(diǎn)的有向完全圖中,包含有________條邊。 9. 9.??????? 假定一個(gè)線性表為(12,23,74,55,63,40),若按Key % 4條件進(jìn)行劃分,使得同一余數(shù)的元素成為一個(gè)子表,則得到的四個(gè)子表分別為____________________________、___________________、_______________________和__________________________。 10. 10.??? 向一棵B_樹插入元素的過程中,若最終引起樹根結(jié)點(diǎn)的分裂,則新樹比原樹的高度_________
27、__。 11. 11.??? 在堆排序的過程中,對任一分支結(jié)點(diǎn)進(jìn)行篩運(yùn)算的時(shí)間復(fù)雜度為________,整個(gè)堆排序過程的時(shí)間復(fù)雜度為________。 12. 12.??? 在快速排序、堆排序、歸并排序中,_________排序是穩(wěn)定的。 ? 三、 三、?????????????????? 運(yùn)算題(每題 6 分,共24分) 1. 1.??????? 在如下數(shù)組A中鏈接存儲(chǔ)了一個(gè)線性表,表頭指針為A [0].next,試寫出該線性表。 A 0 1 2 3 4 5 6 7 data ?
28、 60 50 78 90 34 ? 40 next 3 5 7 2 0 4 ? 1 2. 2.??????? 圖10 請畫出圖10的鄰接矩陣和鄰接表。 3. 3.??????? 已知一個(gè)圖的頂點(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, (3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25}; 用克魯斯卡爾算法得到最小生成樹,試寫出在最小生成樹中依次得到的各條
29、邊。 4. 4.??????? 畫出向小根堆中加入數(shù)據(jù)4, 2, 5, 8, 3時(shí),每加入一個(gè)數(shù)據(jù)后堆的變化。 ? 四、 四、?????????????????? 閱讀算法(每題7分,共14分) 1. 1.???? 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: p
30、->next=q;q->next=NULL; } return L; } 請回答下列問題: (1)說明語句S1的功能; (2)說明語句組S2的功能; (3)設(shè)鏈表表示的線性表為(a1,a2, …,an),寫出算法執(zhí)行后的返回值所表示的線性表。 2. 2.???? void ABC(BTNode * BT) { if BT { ABC (BT->left); ABC (BT->right);
31、 cout<
32、 return ___________;}
else if(item
33、? 參考答案 一、 一、????????????????????? 單選題(每題2分,共20分) 1.A 2.D 3.D 4.C 5.C 6.D 7.D 8.C 9.D 10.A 二、 二、????????????????????? 填空題(每空1分,共26分) 1. 1.???? 正確性 易讀性 強(qiáng)壯性 高效率 2. 2.???? O(n) 3. 3.???? 9 3 3 4. 4.???? -1 3 4 X * + 2 Y * 3 / - 5. 5.???? 2n n-1 n+1 6. 6.?
34、??? e 2e 7. 7.???? 有向無回路 8. 8.???? n(n-1)/2 n(n-1) 9. 9.???? (12,40) ( ) (74) (23,55,63) 10. 10.? 增加1 11. 11.? O(log2n) O(nlog2n) 12. 12.? 歸并 三、 三、????????????????????? 運(yùn)算題(每題6分,共24分) 1. 1.???? 線性表為:(78,50,40,60,34,90) 2. 2.???? 鄰接矩陣: 鄰接表如圖11所示: 圖11 3. 3.???? 用克魯
35、斯卡爾算法得到的最小生成樹為: (1,2)3, (4,6)4, (1,3)5, (1,4)8, (2,5)10, (4,7)20 4. 4.???? 見圖12 4 4 4 4 4 2 2 2 5 5 2 8 5 2 8 3 4 5 2 8 4 3 ? ? ? ? ? ? ? ? ? ? 圖12 四、 四、????????????????????? 閱讀算法(每題7分,共14分) 1. 1.???? (1)查詢鏈
36、表的尾結(jié)點(diǎn) (2)將第一個(gè)結(jié)點(diǎn)鏈接到鏈表的尾部,作為新的尾結(jié)點(diǎn) (3)返回的線性表為(a2,a3,…,an,a1) 2. 2.???? 遞歸地后序遍歷鏈?zhǔn)酱鎯?chǔ)的二叉樹。 五、 五、????????????????????? 算法填空(每空2分,共8 分) true BST->left BST->right 六、 六、????????????????????? 編寫算法(8分) int CountX(LNode* HL,ElemType x) { int i=0; LNode* p=HL;//i為計(jì)數(shù)器 while(p!=N
37、ULL) { if (P->data==x) i++; p=p->next; }//while, 出循環(huán)時(shí)i中的值即為x結(jié)點(diǎn)個(gè)數(shù) return i; }//CountX ? ? ? 一、 一、??????????? 單選題(每小題2分,共8分) 1、 1、在一個(gè)長度為n的順序線性表中順序查找值為x的元素時(shí),查找成功時(shí)的平均查找長度(即x與元素的平均比較次數(shù),假定查找每個(gè)元素的概
38、率都相等)為 ( )。 A n B n/2 C (n+1)/2 D (n-1)/2 2、 2、在一個(gè)單鏈表中,若q所指結(jié)點(diǎn)是p所指結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn),若在q與p之間插入一個(gè)s所指的結(jié)點(diǎn),則執(zhí)行( )。 A s→link=p→link; p→link=s; B p→link=s; s→link=q; C p→link=s→link; s→link=p; D q →link=s; s→link =p; 3、 3、????? 棧的插入和刪除操作在( )進(jìn)行。 A 棧頂
39、 B 棧底 C 任意位置 D 指定位置 4、 4、????? 由權(quán)值分別為11,8,6,2,5的葉子結(jié)點(diǎn)生成一棵哈夫曼樹,它的帶權(quán)路徑長度為( ) A 24 B 71 C 48 D 53 二、 二、??????????? 填空題(每空1分,共32分) 1、 1、數(shù)據(jù)的邏輯結(jié)構(gòu)被分為__________、 ___________ 、________和________四種。 2、 2、一種抽象數(shù)據(jù)類型包括______________和_____________兩個(gè)部分。 3、 3、在下面的數(shù)組a
40、中鏈接存儲(chǔ)著一個(gè)線性表,表頭指針為a[o].next,則該線性表為_________________________________________________。 a 0 1 2 3 4 5 6 7 8 ? 60 56 42 38 ? 74 25 ? 4 3 7 6 2 0 1 ? data next ? 4、 4、在以HL為表頭指針的帶表頭附加結(jié)點(diǎn)的單鏈表和循環(huán)單鏈表中,判斷鏈表為空的條件
41、分別為________________和____________________。 5、 5、用具有n個(gè)元素的一維數(shù)組存儲(chǔ)一個(gè)循環(huán)隊(duì)列,則其隊(duì)首指針總是指向隊(duì)首元素的___________,該循環(huán)隊(duì)列的最大長度為__________。 6、 6、當(dāng)堆棧采用順序存儲(chǔ)結(jié)構(gòu)時(shí),棧頂元素的值可用———————表示;當(dāng)堆棧采用鏈接存儲(chǔ)結(jié)構(gòu)時(shí),棧頂元素的值可用_______________表示。 7、 7、一棵高度為5的二叉樹中最少含有_________個(gè)結(jié)點(diǎn),最多含有________個(gè)結(jié)點(diǎn); 一棵高度為5的理想平衡樹中,最少含有_________個(gè)結(jié)點(diǎn),最多含有_________個(gè)結(jié)點(diǎn)。 8、
42、 8、在圖的鄰接表中,每個(gè)結(jié)點(diǎn)被稱為____________,通常它包含三個(gè)域:一是_____________;二是___________;三是_____________。 9、 9、在一個(gè)索引文件的索引表中,每個(gè)索引項(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ù)為_________個(gè),樹的深度為_________,樹的度為________, 結(jié)點(diǎn)H的雙親結(jié)點(diǎn)為________,孩子結(jié)點(diǎn)為_______________ 。 11、 11、
43、??????????? 在堆排序的過程中,對任一分支結(jié)點(diǎn)進(jìn)行篩運(yùn)算的時(shí)間復(fù)雜度為_________,整個(gè)堆排序過程的時(shí)間復(fù)雜度為________________。 12、 12、??????????? 在對m階的B_樹插入元素的過程中,每向一個(gè)結(jié)點(diǎn)插入一個(gè)索引項(xiàng)(葉子結(jié)點(diǎn)中的索引項(xiàng)為關(guān)鍵字和空指針)后,若該結(jié)點(diǎn)的索引項(xiàng)數(shù)等于______個(gè),則必須把它分裂為_______個(gè)結(jié)點(diǎn)。 ? 三、 三、??????????? 運(yùn)算題(每小題6分,共24分) 1、 1、已知一組記錄的排序碼為(46,79,56,38,40,80, 95,24),寫出對其進(jìn)行快速排序的每一次劃分結(jié)果。 ? 2、
44、 2、一個(gè)線性表為B=(12,23,45,57,20,03,78,31,15,36),設(shè)散列表為HT[0..12],散列函數(shù)為H(key)= key % 13并用線性探查法解決沖突,請畫出散列表,并計(jì)算等概率情況下查找成功的平均查找長度。 ? 3、 3、已知一棵二叉樹的前序遍歷的結(jié)果序列是ABECKFGHIJ,中序遍歷的結(jié)果是EBCDAFHIGJ,試寫出這棵二叉樹的后序遍歷結(jié)果。 ? ? 4、 4、已知一個(gè)圖的頂點(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)
45、,(5,6),(5,8),(5,9),(6,7),(7,8),(8,9)} 當(dāng)它用鄰接矩陣表示和鄰接表表示時(shí),分別寫出從頂點(diǎn)V0出發(fā)按深度優(yōu)先搜索遍歷得到的頂點(diǎn)序列和按廣度優(yōu)先搜索遍歷等到的頂點(diǎn)序列。 假定每個(gè)頂點(diǎn)鄰接表中的結(jié)點(diǎn)是按頂點(diǎn)序號(hào)從大到小的次序鏈接的。 圖 深度優(yōu)先序列 廣度優(yōu)先序列 鄰接矩陣表示時(shí) ? ? 鄰接表表示時(shí) ? ? ? ? ? ? 四、 四、??????????? 閱讀算法,回答問題(每小題8分,共16分) ? 1、假定從鍵盤上輸入一批整數(shù),依次為
46、:78 63 45 30 91 34 –1,請寫出輸出結(jié)果。 # include < iostream.h> # include < stdlib.h > consst int stackmaxsize = 30; typedef int elemtype; struct stack { elemtype stack [stackmaxsize]; int top; }; # include “stack.h” Void main ( ) { stack a; initstack(a); int x; cin >>x;
47、while (x! = -1) {
push (a, x );
cin >>x;
}
while (!stackempty (a))
cout < 48、e > void BinTree 49、是:________________________________
?
五、 五、??????????? 算法填空,在畫有橫線的地方填寫合適的內(nèi)容(10分)
?
對順序存儲(chǔ)的有序表進(jìn)行二分查找的遞歸算法 。
int Binsch( ElemType A[ ],int low ,int high,KeyType K )
{
if (low <= high)
{
int mid = 1
if ( K= = A[ mid ].key )
return mid;
else if 50、 ( K < A[mid].key)
return 2
else
return 3
}
else
return 4
?
六、 六、??????????? 編寫算法(10分)
?
編寫算法,將一個(gè)結(jié)點(diǎn)類型為Lnode的單鏈表按逆序鏈接,即若原單鏈表中存儲(chǔ)元素的次序?yàn)閍1,……an-1,an,則逆序鏈接后變?yōu)? an,an-1,……a1。
Void contrary (Lnode * & HL)
?
?
數(shù)據(jù)結(jié)構(gòu)試題(答案)
51、
一、單選題(每小題2分,共8分)
題 號(hào)
1
2
3
4
答 案
C
D
A
B
二、填空題(每空1分,共32分)
1: 集合、線性、樹、圖;
2: 數(shù)據(jù)描述、操作聲名;
3: (38,56,25,60,42,74);
4: HL→next =NULL; HL=HL→next;
5: 前一個(gè)位置; n-1;
6: S.stack [S.top]; HS→data;
7: 5 31
8: 邊結(jié)點(diǎn)、鄰接點(diǎn)域、權(quán)域、鏈域;
9: 索引值域、開始位置域;
10: 52、10、3、3、B、I和J;
11: O(log2n)、O(nlog2n);
12: m 、 m - 1
三、運(yùn)算題(每小題6分,共24分)
1、
劃分次序
劃分結(jié)果
第一次
[38 24 40] 46 [56 80 95 79]
第二次
24 [38 40] 46 [56 80 95 79]
第三次
24 38 40 46 [56 80 95 79]
第四次
24 38 40 46 56 [80 95 79]
第五次
24 38 40 46 56 79 [80 95]
第六次
24 38 53、 40 46 56 79 80 95
?
2、
0 1 2 3 4 5 6 7 8 9 10 11 12
?
?
78
?
15
03
?
57
45
20
31
?
23
36
12
?
查找成功的平均查找長度:ASL SUCC=14/10= 1.4
3、此二叉樹的后序遍歷結(jié)果是:EDCBIHJGFA
4、
圖
深度優(yōu)先序列
廣度優(yōu)先序列
鄰接矩陣表示時(shí)
0,1,2,8,3,4,5,6,7,9
0,1,4,2,7,3,8,6,5 54、,9
鄰接表表示時(shí)
0,4,3,8,9,5,6,7,1,2
0,4,1,3,7,2,8,6,9,5
四、閱讀算法,回答問題(每小題8分,共16分)
1、 1、? 該算法的輸入結(jié)果是:34 91 30 45 63 78
2、 2、? 該算法的功能是:交換二叉樹的左右子樹的遞歸算法。
五、算法填空,在畫有橫線的地方填寫合適的內(nèi)容(10分)
1、1是:(low + high)/2;
2是: Binsch(A,low,mid–1,K);
3是: Binsch(A,mid+1,high,K);
4是: -1;
六、編寫算法(10分)
根據(jù)編程情況,酌 55、情給分。
{
Lnode *P=HL;
HL=NULL;
While (p!=null)
{
Lnode*q=p;
P=p→next;
q→next=HL;
HL=q;
}
}
第一部分 選擇題(30分)
?
一、 一、項(xiàng)選擇題(本大題共15小題,每小題2分,共30分)在每小題列出的四個(gè)選項(xiàng)中只有一個(gè)選項(xiàng)是符合題目要求的,請將正確選項(xiàng)前的字母填在題后的括號(hào)內(nèi)。
1.算法指的是( )
A.計(jì)算機(jī)程序 B.解決問題的計(jì)算方法
C.排 56、序算法 D.解決問題的有限運(yùn)算序列
2.線性表采用鏈?zhǔn)酱鎯?chǔ)時(shí),結(jié)點(diǎn)的存儲(chǔ)地址( )
A.必須是不連續(xù)的
B.連續(xù)與否均可
C.必須是連續(xù)的
D.和頭結(jié)點(diǎn)的存儲(chǔ)地址相連續(xù)
3.將長度為n的單鏈表鏈接在長度為m的單鏈表之后的算法的時(shí)間復(fù)雜度為( )
A.O(1) B.O(n) C.O(m) D.O(m+n)
4.由兩個(gè)棧共享一個(gè)向量空間的好處是:( )
A.減少存取時(shí)間,降低下溢發(fā)生的機(jī)率
B.節(jié)省存儲(chǔ)空間,降低上溢發(fā)生的機(jī)率
C.減少存取時(shí)間,降低 57、上溢發(fā)生的機(jī)率
D.節(jié)省存儲(chǔ)空間,降低下溢發(fā)生的機(jī)率
5.設(shè)數(shù)組data[m]作為循環(huán)隊(duì)列SQ的存儲(chǔ)空間,front為隊(duì)頭指針,rear為隊(duì)尾指針,則執(zhí)行出隊(duì)操作后其頭指針front值為( )
A.front=front+1 B.front=(front+1)%(m-1)
C.front=(front-1)%m D.front=(front+1)%m
6.如下陳述中正確的是( )
A.串是一種特殊的線性表 B.串的長度必須大于零
C.串中元素只能是字母 58、D.空串就是空白串
7.若目標(biāo)串的長度為n,模式串的長度為[n/3],則執(zhí)行模式匹配算法時(shí),在最壞情況下的時(shí)間復(fù)雜度是( )
A.O() B.O(n) C.O(n2) D.O(n3)
8.一個(gè)非空廣義表的表頭( )
A.不可能是子表 B.只能是子表
C.只能是原子 D.可以是子表或原子
9.假設(shè)以帶行表的三元組表表示稀疏矩陣,則和下列行表
0
2
3
3
5
對應(yīng)的稀疏矩陣是( )
59、
10.在一棵度為3的樹中,度為3的結(jié)點(diǎn)個(gè)數(shù)為2,度為2 的結(jié)點(diǎn)個(gè)數(shù)為1,則度為0的結(jié)點(diǎn)個(gè)數(shù)為( )
A.4 B.5 C.6 D.7
11.在含n個(gè)頂點(diǎn)和e條邊的無向圖的鄰接矩陣中,零元素的個(gè)數(shù)為( )
A.e B.2e C.n2-e D.n2-2e
12.假設(shè)一個(gè)有n個(gè)頂點(diǎn)和e條弧的有向圖用鄰接表表示,則刪除與某個(gè)頂點(diǎn)vi相關(guān)的所有弧的時(shí)間復(fù)雜度是( )
A.O(n) B.O(e) 60、 C.O(n+e) D.O(n*e)
13.用某種排序方法對關(guān)鍵字序列(25,84,21,47,15,27,68,35,20)進(jìn)行排序時(shí),序列的變化情況如下:
20,15,21,25,47,27,68,35,84
15,20,21,25,35,27,47,68,84
15,20,21,25,27,35,47,68,84
則所采用的排序方法是( )
A.選擇排序 B.希爾排序 C.歸并排序 D.快速排序
14.適于對動(dòng)態(tài)查找表進(jìn)行高效率查找的組織結(jié)構(gòu)是( )
A.有序 61、表 B.分塊有序表 C.三叉排序樹 D.線性鏈表
15.不定長文件是指( )
A.文件的長度不固定 B.記錄的長度不固定
C.字段的長度不固定 D.關(guān)鍵字項(xiàng)的長度不固定
?
第二部分 非選擇題(共70分)
二、填空題(本大題共10小題,每小題2分,若有兩個(gè)空格,每個(gè)空格1分,共20分)不寫解答過程,將正確的答案寫在每小題的空格內(nèi)。錯(cuò)填或不填均無分。
16.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)是從邏輯關(guān)系上描述數(shù)據(jù),它與數(shù)據(jù)的 無關(guān),是獨(dú)立于計(jì)算機(jī)的。
17.在一個(gè)帶頭結(jié)點(diǎn)的單循環(huán)鏈表中,p指向尾結(jié)點(diǎn)的直接前驅(qū),則指向 62、頭結(jié)點(diǎn)的指針head可用p表示為head= 。
18.棧頂?shù)奈恢檬请S著 操作而變化的。
19.在串S=“structure”中,以t為首字符的子串有 個(gè)。
20.假設(shè)一個(gè)9階的上三角矩陣A按列優(yōu)先順序壓縮存儲(chǔ)在一維數(shù)組B中,其中B[0]存儲(chǔ)矩陣中第1個(gè)元素a1,1,則B[31]中存放的元素是 。
21.已知一棵完全二叉樹中共有768結(jié)點(diǎn),則該樹中共有 個(gè)葉子結(jié)點(diǎn)。
22.已知一個(gè)圖的廣度優(yōu)先生成樹如右圖所示,則與此相 63、
應(yīng)的廣度優(yōu)先遍歷序列為 。
?
?
23.在單鏈表上難以實(shí)現(xiàn)的排序方法有 和 。
24.在有序表(12,24,36,48,60,72,84)中二分查找關(guān)鍵字72時(shí)所需進(jìn)行的關(guān)鍵字比較次數(shù)為 。
25.多重表文件 64、和倒排文件都?xì)w屬于 文件。
三、解答題(本大題共4小題,每小題5分,共20分)
26.畫出下列廣義表的共享結(jié)構(gòu)圖形表示
P=(((z),(x,y)),((x,y),x),(z))
27.請畫出與下列二叉樹對應(yīng)的森林。
?
?
?
?
?
?
28.已知一個(gè)無向圖的頂點(diǎn)集為{a, b, c, d, e} ,其鄰接矩陣如下 65、所示
a
b
c
d
e
(1)畫出該圖的圖形;
(2)根據(jù)鄰接矩陣從頂點(diǎn)a出發(fā)進(jìn)行深度優(yōu)先遍歷和廣度優(yōu)先遍歷,寫出相應(yīng)的遍歷序列。
?
29.已知一個(gè)散列表如下圖所示:
?
?
35
?
20
?
?
33
?
48
?
?
59
0 1 2 3 4 5 6 7 8 9 10 11 12
其散列函數(shù)為h(key)=key%13, 處理沖突的方法為雙重散列法,探查序列為:
hi=(h(key)+*h1(key))%m =0,1,… 66、,m-1
其中
h1(key)=key%11+1
回答下列問題:
(1)對表中關(guān)鍵字35,20,33和48進(jìn)行查找時(shí),所需進(jìn)行的比較次數(shù)各為多少?
(2)該散列表在等概率查找時(shí)查找成功的平均查找長度為多少?
四、算法閱讀題(本大題共4小題,每小題5分,共20分)
30.下列算法的功能是比較兩個(gè)鏈串的大小,其返回值為:
comstr(s1,s2)=
請?jiān)诳瞻滋幪钊脒m當(dāng)?shù)膬?nèi)容。
int comstr(LinkString s1,LinkString s2)
{//s1和s2為兩個(gè)鏈串的頭指針
while(s1&&s2){
if(s1->date
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第七章-透射電子顯微鏡
- 群落的結(jié)構(gòu)(課件)
- 焊接基礎(chǔ)知識(shí)
- 水文地質(zhì)學(xué)課件
- 某公司員工工傷安全管理規(guī)定
- 消防培訓(xùn)課件:安全檢修(要點(diǎn))
- 某公司安全生產(chǎn)考核與獎(jiǎng)懲辦法范文
- 安全作業(yè)活動(dòng)安全排查表
- 某公司危險(xiǎn)源安全辨識(shí)、分類和風(fēng)險(xiǎn)評價(jià)、分級(jí)辦法
- 某公司消防安全常識(shí)培訓(xùn)資料
- 安全培訓(xùn)資料:危險(xiǎn)化學(xué)品的類別
- 中小學(xué)寒假學(xué)習(xí)計(jì)劃快樂度寒假充實(shí)促成長
- 紅色插畫風(fēng)輸血相關(guān)知識(shí)培訓(xùn)臨床輸血流程常見輸血不良反應(yīng)
- 14.應(yīng)急救援隊(duì)伍訓(xùn)練記錄
- 某公司各部門及人員安全生產(chǎn)責(zé)任制