




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第1章 緒論1、填空題1.常見的數(shù)據(jù)結(jié)構(gòu)有_線性_結(jié)構(gòu),_樹形_結(jié)構(gòu),_圖形_結(jié)構(gòu)等三種。2.常見的存儲結(jié)構(gòu)有_順序存儲_結(jié)構(gòu),_鏈式存儲_結(jié)構(gòu)等兩種。3.數(shù)據(jù)的基本單位是_數(shù)據(jù)元素_,它在計算機中是作為一個整體來處理的。4.數(shù)據(jù)結(jié)構(gòu)中的結(jié)構(gòu)是指數(shù)據(jù)間的邏輯關(guān)系,常見的結(jié)構(gòu)可分為兩大類,_線性結(jié)構(gòu)_和_非線性結(jié)構(gòu)_。2、應用題1、給出以下算法的時間復雜度.void fun(int n)int i=1,k=100;while(i<n)k=k+1;i=i+2; 時間復雜度為_O(n)_。2、給出以下算法的時間復雜度.void fun2(int n)int i=1,k=100;while(i&
2、lt;n)i=i*10;k=k+1;時間復雜度為_O(log n)_。第2章 線性表1、填空題1. 線性表按照存儲結(jié)構(gòu)不同主要有兩種實現(xiàn)方式,一種是_順序_表,另一種是_鏈_表。2.順序表采用_隨機_訪問機制對數(shù)據(jù)元素進行訪問。3.若在單鏈表結(jié)點p的后面插入一個新的結(jié)點s,則其操作序列為:_s->next=p->next_;_p->next=s_;4.在單向鏈表中,若要刪除某個結(jié)點p,一般要找到_p的前趨_結(jié)點,才能實現(xiàn)該操作。2、選擇題1. 將兩個各有n個元素的有序表歸并成一個有序表,其最少的比較次數(shù)是 A 。(A)n (B)2n1
3、60; (C)2n (D)n-12. 在單鏈表中,如果在結(jié)點p之后插入一個新結(jié)點s,其操作為 A 。(A)s->next=p->next; p->next=s;(B)p->next=s; s->next=p->next;(C)s->next=p; p->next=s->next;(D)p->next=s; s->next=p;3.若長度為n的線性表采用順序存儲結(jié)構(gòu),在其第i個位置刪除一個元素的算法的平均時間復雜度為( C )。(1in)A
4、O(0) BO(1) C.O(n) DO(n2)4. 若長度為n的線性表采用順序存儲結(jié)構(gòu),在其第i個位置插入一個新元素需要移動的元素個數(shù)為( B )。(1in+1)An-i Bn-i+1 C. i Dn-i-13、判斷題1.線性表中每一個元素都有一個前驅(qū)和一個后繼。( × )4、程序設(shè)計題1、單鏈表的結(jié)點結(jié)構(gòu)定義如下:struct LinkNodeL
5、inkNode *next;int data;請根據(jù)述函數(shù)的功能寫程序。void Insert(LinkNode *h,LinkNode *s)/h指向鏈表的頭結(jié)點(即使鏈表中沒有元素,頭結(jié)點也存在。)/鏈表中元素已經(jīng)遞增有序/函數(shù)功能為將結(jié)點s插入到鏈表h中。插入后鏈表仍然保持遞增的順序LinkNode *p,*q;/q指向p的前驅(qū)q=h;p=h->next; while(p)if(p->data>s->data) /尋找到插入點位置,插入sq->next=s; s->next=p; return;elseq=p; (1分)p=p->next; (1
6、分)/當表中沒有比s大的結(jié)點時,插入到表尾s->next=q->next; (2分)q->next=s; (2分)2、設(shè)順序表L是一個遞增有序表,試寫一算法,將x插入L中,并使L仍是一個有序表。順序表的結(jié)構(gòu)定義如下:#define ListSize 100 / 假定表空間大小為100struct SqList int elemListSize; / 數(shù)組elem用于存放表中的數(shù)據(jù) int length; / 當前的表長度;/以上為順序表的結(jié)構(gòu)/函數(shù)頭定義如下void InsertIncreaseList(
7、SqList &L ,int x ) int i;if ( L.length>=ListSize) cout<<”O(jiān)VERFLOW”; /判斷是否溢出 for ( i=L.length ; i>0 && L.elem i-1 > x ; i-) L.elem i =L.elem i-1 ; / 比較并移動元素 L.elem i =x; /插入x L.length+; /表長增1 /3、單鏈表中結(jié)點的結(jié)構(gòu)如下所示: typedef struct node int data; struct node *next;node;請設(shè)計滿足下述功能的函
8、數(shù)。要求: 建立帶頭結(jié)點的單鏈表H,要求函數(shù)從屏幕上讀入m個整數(shù),每讀入一個,便生成相應的結(jié)點,并且把它插入到鏈表H的尾部。函數(shù)形式為void CreateLinkList(node *H)。參考程序:void CreateList(node *H)/H指向頭指針int m,temp;cout<<"輸入數(shù)據(jù)的個數(shù):"cin>>m;/int i=1;node *tail; H->next=NULL;tail=H;while(i<=m)cout<<"please input your number:"<&
9、lt;endl;cin>>temp;node *t=new node ;t->data=temp;t->next=tail->next;tail->next=t;tail=t;i+;第3章 棧和隊列1、填空題1.棧和隊列在本質(zhì)上都是_線性表_。2.棧的操作特點是_后進先出_。隊列的操作特點是_先進先出_。2、選擇題1.消除遞歸不一定需要使用棧,此說法_A_。 A. 正確 B. 錯誤2.對于棧,輸入序列為(1,2,3,4),不可能得到的輸出序列有_D_。(A)(1,2,3,4) (B)(4,3,2,1)
10、(C)(1,3,4,2) (D)(3,1,2,4)3.用單循環(huán)鏈表表示隊列,正確的說法是 B 。 (A)可設(shè)一個頭指針使入隊、出隊都方便;(B)可設(shè)一個尾指針使入隊、出隊都方便;(C)必須設(shè)頭尾指針才能使入隊、出隊都方便;(D)無論如何,只可能使入隊方便。3、判斷題1.棧的特點是先進先出。( × )2.可以在隊列的任意位置插入元素。( ×)3.遞歸程序化非遞歸程序必須用到棧。( × )4.如果進棧的序列為(1,2,3,4),則(4,2,3,1)不可能是出棧序列。() 5.在用順序表表示的循環(huán)隊列中,可用標志位來區(qū)分隊空或隊滿的條件。() 第4章 串1、選
11、擇題1. 設(shè)有兩個串p和q,求q在p中首次出現(xiàn)的位置的運算稱作( B )A連接 B模式匹配 C求子串 D求串長2、判斷題1.空串和空格串是同一個概念,二者沒有區(qū)別。( × )第5章 數(shù)組和廣義表1、填空題1.二維數(shù)組在內(nèi)存中存儲可以有兩種存儲方式,一種是_行_優(yōu)先存儲,一種是 列 優(yōu)先存儲。2.設(shè)廣義表L((),(),())。則head(L)是 () ;tail(L)是 ((),()) ;L的長度是 3 ;L的深度是 3 。3.設(shè)廣義表L((a),(b),(c)) 則he
12、ad(L)是_(a)_;tail(L)是_((b),(c))_。2、選擇題1.在C語言中,如果有數(shù)組定義 int A89;假定每個整型數(shù)據(jù)占2字節(jié),則數(shù)組元素A44的地址是( A )。A. A+80 B. A+76 C.A+82 D.以上都不對2.廣義表A=(a,b,(c,d),(e,(f,g)),則下面式子的值為( D ); Head(Tail(Head(Tail(Tail(A)A(g) B.(d) C.c D.d3
13、、判斷題1.在C語言中,多維數(shù)組的存儲采取的是行優(yōu)先的方式。( )2.廣義表在本質(zhì)上也是線性表。( × )3.可以用三元組存儲法來壓縮存儲稀疏矩陣。( )4.已知廣義表A=(a,b,c),(d,e,f),從A中取出原子e的運算是head(tail(head(tail(A)。 ( )第6章 樹和二叉樹1、填空題1.一棵62個葉結(jié)點的完全二叉樹,最多有_62*2=124_個結(jié)點。2.若規(guī)定僅有根的二叉樹的高度為1,那么高為h的完全二叉樹最多有_2h-1_個結(jié)點,最少有_2(h-1)_個結(jié)點。3.設(shè)只包含有根結(jié)點的二叉樹的高度為0,則高度為k的二叉樹的最大結(jié)點數(shù)為_2(k+1)-1_,最小
14、結(jié)點數(shù)為_k+1_。4.設(shè)僅包含根結(jié)點的二叉樹的高度為1,則高度為k的二叉樹的最大結(jié)點數(shù)為_2k-1_,最小結(jié)點數(shù)為_k_。2、選擇題1.具有N個結(jié)點的完全二叉樹的深度是_B_。(A) log2N (B) log2N +1 (C) log2(N) (D) log2N -12.設(shè)二叉樹的樹根為第一層,則第i層上至多有_C_結(jié)點。(A)1 (B)2 (C)2i-1 (D)2i-13、判斷題1.二叉樹的左右子樹次序是嚴格的,不能夠任意改變。( )2.若根為第一層,則深度為k的滿二叉樹的結(jié)點為2k-1 。 ( )3.二叉樹的三叉鏈表存儲結(jié)構(gòu)可以方便的訪問到雙親結(jié)點。
15、 ( )4、應用題1.在一段文字中,共出現(xiàn)a、b、c、d、e、f六種字符,每種字符出現(xiàn)的頻率分別為7,9,12,22,23,27。請回答下列問題:(1)什么是哈夫曼樹?(3分)(2)根據(jù)題目所給頻率值,畫出相應的哈夫曼樹。(11分)(3)給出各個字符對應的哈夫曼編碼。(6分)(4)該段文字經(jīng)過哈夫曼編碼后,長度是多少。(4分)參考答案如下:(1)答案為:帶權(quán)路徑長度最小的二叉樹稱為哈夫曼樹。(3分)(2)根據(jù)題目所給頻率值,畫出相應的哈夫曼樹。(11分,每個結(jié)點1分)fc287912222355162745100abed1000001111(3)給出各個字符對應的哈夫曼編碼。(6分)a:111
16、0 b:1111 c:110 d:00 e:01 f:10(4)該段文字經(jīng)過哈夫曼編碼后,長度是多少。(4分)(7+9)*4+12*3+(22+23+27)*2=244或者100+45+55+28+16=2442. 設(shè)一棵二叉樹的先序遍歷序列為abcde,中序遍歷序列為badce,請畫出對應的二叉樹,并寫出對應后序遍歷序列。(15分)參考答案如下:(1)畫出二叉樹(10分)錯一個結(jié)點扣2分。 abcde(2)后序遍歷序列為:bdeca (5分)3. 通信報文中出現(xiàn)的字符A、B、C、D、E,在報文中出現(xiàn)的頻率分別為0.23、0.2、0.32、0.12、0.13,分別給出相應字符的哈夫曼編碼(要求
17、畫出哈夫曼樹,并且把權(quán)值小的結(jié)點放在左邊)。(共14分)參考答案如下:為處理方便,關(guān)鍵字都乘以100,為23,20,32,12,13構(gòu)造哈夫曼樹為:(9分,每個結(jié)點1分)ABDEC010001111004357202325321213所以編碼為:A:01 B:00 C:11 D:100 E:101 (5分,每個編碼1分)4. 某二叉樹結(jié)點的中序序列為H,B,C,D,E,F(xiàn),G,后序序列為B,D,C,H,F(xiàn),G,E,請據(jù)此畫出該二叉樹,再給該樹加上中序線索。(共15分)對應的二叉樹為:(7分,每個結(jié)點1分)CFBDGHECFBDGHE對應中序線索樹為:(8分,每條線索1分)5.請證明對于任何一棵
18、二叉樹,如果其終端結(jié)點數(shù)為n0,度為2的結(jié)點數(shù)為n2,則n0=n2+1。(10分)證明:令樹中結(jié)點總數(shù)為N,度為1的結(jié)點個數(shù)為n1。則樹中結(jié)點數(shù)滿足下列公式:n0+n1+n2=N從度的角度來考慮,滿足下列公式:2n2+n1+1=N從而得證:n0=n2+16.請按照孩子-兄弟表示法,將圖1所示樹轉(zhuǎn)化為二叉樹。(共14分)ACBDEFG圖1 解:ACBDEFG(每個結(jié)點2分)ABECFGDHIJ圖27.設(shè)二叉樹如圖2所示。分別寫出它的先序遍歷、中序遍歷、后序遍歷序列。(共15分)8. (1)寫出如圖所示二叉樹的中序遍歷結(jié)果。(8分)(2)畫出二叉樹的中序后繼線索。(10分) DACFGE
19、HB(1)中序遍歷結(jié)果:ADBCHFEG 共8分,每個字符1分(2)二叉樹的中序后繼線索如圖 共10分,每個后繼線索2分DACFGEHB9.已知某二叉樹的前序遍歷序列為:A B C D E F G和中序遍歷序列為:C B E D A F G。請畫出該二叉樹。答案如下:BCDFGAE10.已知通信聯(lián)絡(luò)中只可能出現(xiàn)A、B、C、D、E、F、G、H共8種字符,其出現(xiàn)次數(shù)分別為5,28,7,9,14,23,3,11次。(1)請畫出赫夫曼樹(權(quán)值小的結(jié)點在左邊)。(15分)(2)計算該樹的帶權(quán)路徑長度。(3分)答案:(1)赫夫曼樹構(gòu)造如下。樹中結(jié)點位置正確者,每個1分,共15分。3014167910042
20、2319118355828(2)該樹的帶權(quán)路徑長度為 (5+3+7+8)*4+(11+14)*3+(23+29)*2=271 3分5、讀程序?qū)懡Y(jié)果ABCDE已知二叉樹的結(jié)點結(jié)構(gòu)如下: struct Nodeint data; Node *lchild,*rchild;某棵二叉樹的形態(tài)如右圖:根據(jù)要求解答下題:1、 (共5分)int fun1(Node *root)if(root=0) return 0; int l,r;l=fun1(root->lchild); r=fun1(root->rchild); if(l>=r) return l+1; else return r+
21、1; (1)當root是指向結(jié)點A的指針時,函數(shù)fun1的返回值是多少?(2分)函數(shù)fun1的返回值是3。(2)函數(shù)fun1的功能是什么?(3分)函數(shù)fun1的功能是求二叉樹的高度。2、 (共6分)int fun2(Node *root)if(root=0) return 0; int l=fun2(root->lchild ); int r=fun2(root->rchild ); return l+r+1; (1)當root是指向結(jié)點A的指針時,函數(shù)fun1的返回值是多少?(2分)函數(shù)fun1的返回值是5。(2)函數(shù)fun1的功能是什么?(4分)函數(shù)fun1的功能是求二叉樹中所
22、有結(jié)點的個數(shù)第7章 圖1、填空題1. 有n個頂點的有向連通圖最多有 n*(n-1) 條邊,最少有 n 條邊。2.具有n個頂點的完全無向圖有_n*(n-1)/2_條邊,完全有向圖有_n*(n-1)_條邊。2、選擇題1. _B_方法可以判斷出一個有向圖中是否有環(huán)(回路)。(A)深度優(yōu)先遍歷 (B)拓撲排序 (C)求最短路徑 (D)求關(guān)鍵路徑2.關(guān)鍵路徑是指_B_。(A)從開始事件到終止事件路徑長度最短的路徑(B)從開始事件到終止事件路徑長度最長的路徑(C)從開始事件到終止事件活動最少的路徑 (D)從開始事件到終止事件活動最多的路徑
23、 3、判斷題1.具有n個頂點的有向圖最多有n*(n-1)條邊。 ( )2.在AOV-網(wǎng)中,不應該出現(xiàn)有向環(huán),因為存在環(huán)就意味著活動可以以自己為先決條件。( )4、應用題1、已知某圖的存儲結(jié)構(gòu)如下,試寫出該圖從頂點A開始的深度優(yōu)先遍歷序列。(11分)ABCDEFGHIJKA01111100000B00000010000C00000001000D00000000100E00000000010F00000000001G01000000000H00100000000I00010000000J00001000000K00000100000答案為:ABGCHDIEJFK (對一個1分)2. 請給
24、出圖1的所有最小生成樹。(10分)aebdfc1238665圖1 共兩棵。第一棵為:(5分)錯一條邊扣1分。aebdfc12365 第二棵為:(5分)錯一條邊扣1分。aebdfc1236653. 請給出圖2的所有拓撲排序序列。(16)圖2abdfgceh答案如下:僅有兩個第一個:abcdefgh (錯一個字符扣1分)第二個:abcdegfh (錯一個字符扣1分)4、對于有向無環(huán)圖(如圖2),寫出它的所有不同的拓撲有序序列。(共16分)12435678圖2序列為:1、3、2、4、5、6、7、86. 已知某圖采取如圖2所示的鄰接矩陣表示法,請回答下列問題。(共12分) 01234561A10110
25、002B21001103C31000114D40100005E50110006F6001000圖2(1) 請畫出該圖。(6分)(2)對其從頂點A開始進行深度優(yōu)先遍歷,寫出遍歷序列。(6分)(1) 請畫出該圖。(6分)錯一個結(jié)點扣1分。ABCEFD(2)對其從頂點A開始進行深度優(yōu)先遍歷,寫出遍歷序列。(6分, 錯一個字符扣1分)序列為:ABDECF7、(本題總計 7 分)構(gòu)造該圖的最小生成樹。 aefgdbhc21111222243圖的最小生成樹如下 每條邊1分,共7分 aefgdbhc2111122第9章 查找1、選擇題1.若在線性表中采用二分查找法查找元素,該線性表應該( C )。A元素按值
26、有序 B采用順序存儲結(jié)構(gòu)C元素按值有序,且采用順序存儲結(jié)構(gòu)D元素按值有序,且采用鏈式存儲結(jié)構(gòu)2.對二叉排序樹進行_B_遍歷,可以得到該二叉樹所有結(jié)點構(gòu)成的有序序列。(A) 前序 (B)中序 (C)后序 (D)按層次3.利用逐點插入法建立序列(51,71,43,81,74,20,34,45,64,30)對應的二叉排序樹以后,查找元素34要進行( A )元素間的比較。 A4次 B5次 C.
27、7次 D104.對二叉排序樹進行_B_遍歷,可以得到該二叉樹所有結(jié)點構(gòu)成的有序序列。(A) 前序 (B)中序 (C)后序 (D)按層次5.散列函數(shù)有一個共同性質(zhì),即函數(shù)值應按( C )取其值域的每一個值。A.最大概率 B.最小概率 C.同等概率 D.平均概率6.一個哈希函數(shù)被認為是“好的”,如果它滿足條件_A_。(A)哈希地址分布均勻(B)保證不產(chǎn)生沖突(C)所有哈希地址在表長范圍內(nèi)(D
28、)滿足(B)和(C)7.哈希表的平均查找長度是_D_的函數(shù)。(A)哈希表的長度 (B)表中元素的多少(C)哈希函數(shù) (D)哈希表的裝滿程度8.平均查找長度最短的查找方法是_C_。(A)折半查找 (B)順序查找 (C)哈希查找 (4)其他2、判斷題1.在有序表的查詢過程中,設(shè)立“哨兵”的作用是為了提高效率。( )2.對于折半查找,其前提條件是待查找序列只要是有序的即可。 ( × )3、應用題1. 輸入一個正整數(shù)序列(53,17,12,66,58,70,87,25,56,60),試完成下列各題。(1)按輸入次序構(gòu)造一棵二叉排序樹(只要求畫出最終二叉排序樹)。(2)依此二叉排序樹,如何得到
29、一個從小到大的有序序列?2、若一棵排序二叉樹的關(guān)鍵字輸入序列為80,6,10,7,8,25,100,90,請畫出該二叉樹。解:二叉排序樹為: (16分,每個結(jié)點2分)806100901072583.已知一組關(guān)鍵字為1,14,27,29,55,68,10,11,23,則按哈希函數(shù)H(key)=key MOD 13和鏈地址法處理沖突來構(gòu)造哈希表。(1)畫出所構(gòu)造的哈希表。(2)在記錄的查找概率相等的前提下,計算該表查找成功時的平均查找長度。(1)畫出所構(gòu)造的哈希表。 9個結(jié)點,每個1分011142723295568456789101023111112(2)在記錄的查找概率相等的前提下,該表查找成功時的平均查找長度,ASL(1×42×33×2)/9=16/9 2分4、程序設(shè)計題1.二叉排序樹的結(jié)點結(jié)構(gòu)如下所示:typedef struct node int data; struct node *lchild,*rchild; node;請編寫在二叉排序樹T中查找值為x的結(jié)點的非遞歸算法,如果查到,返回指向該結(jié)點的指針,否則返回空。函數(shù)形式為:node* Search(node *
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 啤酒酒水供應合同范本
- 鄉(xiāng)村振興改造合同范本
- 商場安保 合同范本
- 取水工程設(shè)計服務(wù)合同范例
- 出欄肉牛收購合同范例
- 勞務(wù)合同范本小店
- 商鋪業(yè)主租賃合同范例
- 印刷業(yè)績合同范本
- 員工 不簽 合同范本
- 變配電施工合同范例
- 全國2022年10月自學考試00040法學概論試題答案
- 新產(chǎn)品開發(fā)進度表
- 國際班成立方案1
- 小學語文一年級下冊 快樂讀書吧 課件(共13張PPT)
- 11471勞動爭議處理(第2章)
- 疾控中心職責
- 朗讀技巧與朗讀教學課件
- 最新安全生產(chǎn)管理教材電子版
- 藥業(yè)有限公司內(nèi)部審計報告
- 空分制氧工基礎(chǔ)知識題庫完整
- 茶樹栽培學茶樹的修剪課件
評論
0/150
提交評論