




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)結(jié)構(gòu)試題庫(kù)及答案第一章概論三、綜合題1、將數(shù)量級(jí) 0(1),0(N),0(N2),O(N3),O(NLOG2N),O(LOG2N),O(2N)按增長(zhǎng)率由小到大排序。23N答案: 0(1) 0(log2N) 0(N) O(Nlog2N) 0(N ) 0(N )0(2 )一、填空題1.數(shù)據(jù)結(jié)構(gòu)被形式地定義為(D, R),其中 D 是數(shù)據(jù)元素的有限集合,R 是 D 上的關(guān)系有限集合。2數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和數(shù)據(jù)的運(yùn)算這三個(gè)方面的內(nèi)容。3數(shù)據(jù)結(jié)構(gòu)按邏輯結(jié)構(gòu)可分為兩大類,它們分別是線性結(jié)構(gòu)和非線性結(jié)構(gòu)。&數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)可用四種基本的存儲(chǔ)方法表示,它們分別是順序、鏈?zhǔn)健⑺?/p>
2、弓丨、1、2、選擇題研究數(shù)據(jù)結(jié)構(gòu)就是研究(DA.數(shù)據(jù)的邏輯結(jié)構(gòu)C.數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)算法分析的兩個(gè)主要方面是(A.空間復(fù)雜度和時(shí)間復(fù)雜度C.可讀性和文檔性具有線性結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)是(A.圖B.樹算法是(D )A計(jì)算機(jī)程序D解決問(wèn)題的有限運(yùn)算序列 某算法的語(yǔ)句執(zhí)行頻度為(B.B.D.B.C.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及其基本操作正確性和簡(jiǎn)單性D.數(shù)據(jù)復(fù)雜性和程序復(fù)雜性廣義表D.棧解決問(wèn)題的計(jì)算方法C.排序算法A. 0(n)B. 0(nlog2n)11、抽象數(shù)據(jù)類型的三個(gè)組成部分分別為(A.數(shù)據(jù)對(duì)象、數(shù)據(jù)關(guān)系和基本操作C.數(shù)據(jù)項(xiàng)、數(shù)據(jù)元素和數(shù)據(jù)類型二、填空題23n+nlog2n+n
3、 +8 ),其時(shí)間復(fù)雜度表示( C )D. O(log2n)C. 0( n2)A )B.D.數(shù)據(jù)元素、邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)元素、數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型散列。9.數(shù)據(jù)的運(yùn)算最常用的有5 種,它們分別是插入、刪除、修改、查找、排序。、單項(xiàng)選擇題(C) 2.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無(wú)關(guān)的是數(shù)據(jù)的 _結(jié)構(gòu);A)存儲(chǔ) B)物理C)邏輯D)物理和存儲(chǔ)三、簡(jiǎn)答題1數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型兩個(gè)概念之間有區(qū)別嗎?答:簡(jiǎn)單地說(shuō),數(shù)據(jù)結(jié)構(gòu)定義了一組按某些關(guān)系結(jié)合在一起的數(shù)組元素。數(shù)據(jù)類型不僅定義了一組帶結(jié)構(gòu)的數(shù)據(jù)元素,而且還在其上定義了一組操作。2.簡(jiǎn)述線性結(jié)構(gòu)與非線性結(jié)構(gòu)的不同點(diǎn)。答:線性結(jié)構(gòu)反映結(jié)點(diǎn)間的邏輯關(guān)系是一
4、對(duì)一的,非線性結(jié)構(gòu)反映結(jié)點(diǎn)間的邏輯關(guān)系是多對(duì)多的。四、分析下面各程序段的時(shí)間復(fù)雜度1. for (i=0; in; i+)for (j=0; jm; j+)Aij=0;2.s=0;for (i=0; in; i+) for(j=0;j n; j+) s+=Bij;sum=s;3.x=0;for(i=1; in; i+)for (j=1; j=n-i; j+)x+;4.i=1;while(in ext=q;q_prior=p;p-n ext_prior=q ;q_n ext=q;B. p-n ext=q;p-n ext_prior=q;q_prior=p;q-n ext=p-n ext;C. q
5、-prior=p;q-n ext=p-n ext;p-n ext-prior=q;p-n ext=q;D. q_n ext=p-n ext;q-prior=p;p-n ext=q;p-n ext=q;10、 線性表是門個(gè)()的有限序列。A.表元素B.字符 C.數(shù)據(jù)元素 D.數(shù)據(jù)項(xiàng)11、 從表中任一結(jié)點(diǎn)出發(fā),都能掃描整個(gè)表的是()。A.單鏈表B.順序表C.循環(huán)鏈表D.靜態(tài)鏈表12、 在具有 n 個(gè)結(jié)點(diǎn)的單鏈表上查找值為x 的元素時(shí),其時(shí)間復(fù)雜度為()OA. O( n)B. 0(1)C. O( n2)D. O( n-1)15、在線性表的下列存儲(chǔ)結(jié)構(gòu)中,讀取元素花費(fèi)的時(shí)間最少的是()。A.單鏈表B.
6、雙鏈表C.循環(huán)鏈表D.順序表16、 在一個(gè)單鏈表中,若刪除 p 所指向結(jié)點(diǎn)的后續(xù)結(jié)點(diǎn),則執(zhí)行()OA. p-n ext=p-n ext- n ext;B. p=p-n ext;p-n ext=p-n ext-n ext;C. p =p-n ext;D. p=p-n ext- n ext;17、 將長(zhǎng)度為 n 的單鏈表連接在長(zhǎng)度為 m 的單鏈表之后的算法的時(shí)間復(fù)雜度為()OA. O(1)B. O( n) C. O(m) D. O(m+n)18、 線性表的順序存儲(chǔ)結(jié)構(gòu)是一種(a )存儲(chǔ)結(jié)構(gòu)N1.D=d1,d2,d3,d4A.隨機(jī)存取B.順序存取C.索引存取D.散列存取19、順序表中,插入一個(gè)元素所
7、需移動(dòng)的元素平均數(shù)是(A. (n-1)/2B. n C. n+1D. (n+1)/211、 不帶頭結(jié)點(diǎn)的單鏈表 head 為空的判定條件是( b )。A. head=NULLB. head-next=NULLC. head-next=headD. head!=NULL12、 在下列對(duì)順序表進(jìn)行的操作中,算法時(shí)間復(fù)雜度為0(1)的是()。A.訪問(wèn)第 i 個(gè)元素的前驅(qū)(1next=s-next; s-next=p ;B. s-next=p ; q-next=s-next;C. p-next=s-next ; s-next=q ;D. s-next=q ; p-next=s-next;15、在表長(zhǎng)為
8、 n 的順序表中,當(dāng)在任何位置刪除一個(gè)元素的概率相同時(shí),刪除一個(gè)元素所 需移動(dòng)的平均個(gè)數(shù)為( a )。A. (n-1)/2B. n/2C. (n+1)/2D. n二、填空題1、設(shè)單鏈表的結(jié)點(diǎn)結(jié)構(gòu)為(data,next )。已知指針 p 指向單鏈表中的結(jié)點(diǎn),q 指向新結(jié)點(diǎn), 欲將 q 插入到 p 結(jié)點(diǎn)之后,則需要執(zhí)行的語(yǔ)句: _ ; _ 。答案:q_n ext=p-n extp_n ext=q3、寫出帶頭結(jié)點(diǎn)的雙向循環(huán)鏈表L 為空表的條件 _ 。答案:L-prior=L-n ext=L5、在一個(gè)單鏈表中刪除 p 所指結(jié)點(diǎn)的后繼結(jié)點(diǎn)時(shí),應(yīng)執(zhí)行以下操作:q = p-n ext;p-next=_ q-
9、next_;三、 判斷題3、 用循環(huán)單鏈表表示的鏈隊(duì)列中,可以不設(shè)隊(duì)頭指針,僅在隊(duì)尾設(shè)置隊(duì)尾指針。x4、 順序存儲(chǔ)方式只能用于存儲(chǔ)線性結(jié)構(gòu)。5、 在線性表的順序存儲(chǔ)結(jié)構(gòu)中, 邏輯上相鄰的兩個(gè)元素但是在物理位置上不一定是相鄰的。6、 鏈?zhǔn)酱鎯?chǔ)的線性表可以隨機(jī)存取。四、 程序分析填空題1、函數(shù) GetElem 實(shí)現(xiàn)返回單鏈表的第 i 個(gè)元素,請(qǐng)?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。int GetElem(LinkList L,int i,Elemtype *e)LinkList p ; int j ;p=L-n ext;j=1;while(p&jnext _;+j;if(!p|ji) return ER
10、ROR;*e=_p-data _;return OK;2、函數(shù)實(shí)現(xiàn)單鏈表的插入算法,請(qǐng)?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。int List In sert(L in kList L,i nt i,ElemType e)LNode *p,*s;int j;p=L;j=0;while(p!=NULL) &(j next;j+;if(p=NULL|ji-1) return ERROR;s=(LNode *)malloc(sizeof(LNode);s-data=e;_ s-n ext=p-n ext _;_ p-next=s _;return OK;/*Listl nsert*/3、函數(shù) ListDel
11、ete_sq 實(shí)現(xiàn)順序表刪除算法,請(qǐng)?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。int ListDelete_sq(Sqlist *L,int i)int k;if(iL-length) return ERROR;for(k=i-1;kle ngth-1;k+)L-slistk= _L-slistk+1 _;_ -L-Le ngth _;return OK;4、函數(shù)實(shí)現(xiàn)單鏈表的刪除算法,請(qǐng)?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。int ListDelete(LinkList L,int i,ElemType *s)LNode *p,*q;int j;p=L;j=0;while(_ p-next!=NULL _)&(jn
12、ext;j+;if(p- next=NULL|ji-1) return ERROR;q=p-n ext;_ p-n ext=q-n ext _;*s=q-data;free(q);return OK;/*listDelete*/5、寫出算法的功能。int L(head)node * head; int n=0;node *p; p=head; while(p!=NULL) p=p-n ext;n+;return( n);答案:求單鏈表 head 的長(zhǎng)度五、綜合題1、編寫算法,實(shí)現(xiàn)帶頭結(jié)點(diǎn)單鏈表的逆置算法。答案:void inven t(L node *head)Lnode *p,*q;if(!
13、head-next) return ERROR;p=head-n ext; q=p-n ext; p-n ext =NULL;while(q)p=q; q=q_n ext; p_n ext=head-n ext; head-n ext=p; 2、有兩個(gè)循環(huán)鏈表,鏈頭指針?lè)謩e為L(zhǎng)1 和 L2,要求寫出算法將 L2 鏈表鏈到 L1 鏈表之后,且連接后仍保持循環(huán)鏈表形式。答案:void merge(Lnode *L1, Lnode *L2) Lnode *p,*q ;while(p-n ext!=L1) p=p-n ext;while(q- next!=L2)q=q_n ext;q-n ext=L1
14、; p-next =L2;3、設(shè)一個(gè)帶頭結(jié)點(diǎn)的單向鏈表的頭指針為head,設(shè)計(jì)算法,將鏈表的記錄,按照d a t a 域的值遞增排序。答案:void asse ndin g(L node *head)Ln ode *p,*q , *r, *s;p=head-n ext; q=p-n ext; p-n ext=NULL; while(q)r=q; q=q_n ext; if(r-datadata)r-n ext=p; head-n ext=r; p=r; elsewhile(!p & r-datap-data) s=p; p=p-n ext; r-n ext=p; s_n ext=r;p
15、=head-n ext; 4、 編寫算法,將一個(gè)頭指針為 head 不帶頭結(jié)點(diǎn)的單鏈表改造為一個(gè)單向循環(huán)鏈表,并分析 算法的時(shí)間復(fù)雜度。答案:void lin klist_c(L node *head)Lnode *p; p=head;if(!p) return ERROR;while(p- next!=NULL)p=p-n ext;p-n ext=head; 設(shè)單鏈表的長(zhǎng)度(數(shù)據(jù)結(jié)點(diǎn)數(shù))為 N,則該算法的時(shí)間主要花費(fèi)在查找鏈表最后一個(gè)結(jié)點(diǎn)上 (算法中的while 循環(huán)),所以該算法的時(shí)間復(fù)雜度為0 (N )。5、 已知 head 為帶頭結(jié)點(diǎn)的單循環(huán)鏈表的頭指針,鏈表中的數(shù)據(jù)元素依次為(a1
16、,a2,a3,a4,an) ,A 為指向空的順序表的指針。閱讀以下程序段,并回答問(wèn)題:(1)寫出執(zhí)行下列程序段后的順序表 A 中的數(shù)據(jù)元素;(2) 簡(jiǎn)要敘述該程序段的功能。if(head-n ext!=head)p=head-n ext;A-len gth=0;while(p-n ext!=head)p=p-n ext;A-dataA-le ngth +=p-data;if(p-n ext!=head)p=p-n ext;答案:(1) (a2, a4,)將循環(huán)單鏈表中偶數(shù)結(jié)點(diǎn)位置的元素值寫入順序表A6、 設(shè)順序表 va 中的數(shù)據(jù)元數(shù)遞增有序。試寫一算法,將x 插入到順序表的適當(dāng)位置上,以 保持
17、該表的有序性。答案:void In sert_sq(Sqlist va, ElemType x)int i, j, n;n=len gth(va);if(x=vai) va n=x;elsei=0;while(xvai) i+;for(j=n-1;j=l;j-)vaj+1=vaj;vai=x; n+;7、假設(shè)線性表采用順序存儲(chǔ)結(jié)構(gòu),表中元素值為整型。閱讀算法 f2 ,設(shè)順序表 L=(3,7,3,2,1,1,8,7,3),寫出執(zhí)行算法 f2 后的線性表 L 的數(shù)據(jù)元素,并描述該算法的功能。void f2(SeqList *L)int i,j,k;k=0;for(i=0;ile ngth;i+)f
18、or(j=0;jdatai!=L-dataj;j+);if(j=k)if(k!=i)L-datak=L-datai;k+;L-le ngth=k;答案:(3,7,2,1,8)刪除順序表中重復(fù)的元素&已知線性表中的元素以值遞增有序排列,并以單鏈表作存儲(chǔ)結(jié)構(gòu)。試寫一算法,刪除表中所有大于 x 且小于 y 的元素(若表中存在這樣的元素)同時(shí)釋放被刪除結(jié)點(diǎn)空間。答案:void Delete_list(L node *head, ElemType x, ElemType y)Lnode *p, *q;if(!head) return ERROR;p=head; q=p;while(!p)if(p
19、-datax) & (p-datan ext; free(p);p=head; q=p; elseq-n ext=p-n ext; free(p);p=q _n ext; elseq=p; P=p- next; 9、在帶頭結(jié)點(diǎn)的循環(huán)鏈表 L 中,結(jié)點(diǎn)的數(shù)據(jù)元素為整型,且按值遞增有序存放。給定兩個(gè) 整數(shù) a 和 b,且 arear=Q-fro ntB. Q-rear=Q-fro nt+1C. Q-fro nt=(Q-rear+1)% nD. Q-fro nt=(Q-rear-1)% n3、 設(shè)計(jì)一個(gè)判別表達(dá)式中括號(hào)是否配對(duì)的算法,采用()數(shù)據(jù)結(jié)構(gòu)最佳。A.順序表B.鏈表C.隊(duì)列D.棧4、
20、帶頭結(jié)點(diǎn)的單鏈表 head 為空的判定條件是()。A. head=NULLB. head-next=NULLC. head-next!=NULLD. head!=NULL5、 一個(gè)棧的輸入序列為:1,2,3,4,則棧的不可能輸出的序列是()。A. 1243B. 2134C. 1432D. 4312E. 32146、 若用一個(gè)大小為 6 的數(shù)組來(lái)實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)rear 和 front 的值分別為 0, 3。當(dāng)從隊(duì)列中刪除一個(gè)元素,再加入兩個(gè)元素后,rear 和 front 的值分別為()。A. 1 和 5B. 2 和 4C. 4 和 2D. 5 和 17、 隊(duì)列的插入操作是在()。A.隊(duì)尾B
21、.隊(duì)頭C.隊(duì)列任意位置D.隊(duì)頭元素后&循環(huán)隊(duì)列的隊(duì)頭和隊(duì)尾指針?lè)謩e為front 和 rear,則判斷循環(huán)隊(duì)列為空的條件是()。A. fron t=rearB. fron t=0B. s-n ext=rear;rear=sD. s- next=fro nt;fr on t=s;2,3, 4,則隊(duì)列的出隊(duì)序列是()。A. 1,2,3,4B. 4,3,2,1C. 1,4,3,2D. 3,4,1,2C. rear=0D. fron t=rear+1一個(gè)順序棧 S,其棧頂指針為 top,則將元素 e 入棧的操作是(A. *S-top=e;S-top+;C. *S-top=e10、 表達(dá)式 a*(
22、b+c)-d 的后綴表達(dá)式是(A. abcd+-B. abc+*d-11、 將遞歸算法轉(zhuǎn)換成對(duì)應(yīng)的非遞歸算法時(shí),A.隊(duì)列B.棧12、 棧的插入和刪除操作在(A.棧底13、 五節(jié)車廂以編號(hào)A. 3, 4,5, 1,C. 3, 5, 4, 2,14、 判定一個(gè)順序棧A. S-top=0C. S-top=n15、 在一個(gè)鏈隊(duì)列中,B.棧頂1,2,3,2B. S-top+;*S-top=e;D. S-top=e;)。C. abc*+d-通常需要使用(C.鏈表D.-+*abcd)來(lái)保存中間結(jié)果。樹C.任意位置4,5 順序進(jìn)入鐵路調(diào)D.,可以得到()的編組。指定位置1S (棧空間大小為 n)為空的條件是B
23、. S-top!=0D. S-top!=nfront 和 rear 分別為頭指針和尾指針, 則插入一個(gè)結(jié)點(diǎn) s 的操作為(A. front=front-nextC. rear-n ext=s;rear=s;16、一個(gè)隊(duì)列的入隊(duì)序列是1,17、依次在初始為空的隊(duì)列中插入元素a,b,c,d 以后,緊接著做了兩次刪除操作,此時(shí)的隊(duì)頭18、正常情況下,刪除非空的順序存儲(chǔ)結(jié)構(gòu)的堆棧的棧頂元素,棧頂指針 top 的變化是()。A. top 不變B. top=0 C. top=top+1 D. top=top-119、 判斷一個(gè)循環(huán)隊(duì)列 Q (空間大小為 M )為空的條件是()。A. Q-fro nt=Q-
24、rearB. Q-rear-Q-fro nt- 1=MC. Q-fro nt+仁Q-rearD. Q-rear+仁Q-fro nt20、設(shè)計(jì)一個(gè)判別表達(dá)式中左右括號(hào)是否配對(duì)出現(xiàn)的算法,采用()數(shù)據(jù)結(jié)構(gòu)最佳。A.線性表的順序存儲(chǔ)結(jié)構(gòu)B.隊(duì)列 C.棧D.線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)21、 當(dāng)用大小為 N 的數(shù)組存儲(chǔ)順序循環(huán)隊(duì)列時(shí),該隊(duì)列的最大長(zhǎng)度為()。A. NB. N+1C. N-122、隊(duì)列的刪除操作是在()。二、填空題1、設(shè)棧 S 和隊(duì)列 Q 的初始狀態(tài)為空,元素 e1,e2,e3,e4,e5,e6 依次通過(guò)棧 S, 個(gè)元素出棧后即 進(jìn)入隊(duì)列 Q ,若 6 個(gè)元素出隊(duì)的序列是 e2,e4,e3,e6
25、,e5,e1 ,則棧的容量至少應(yīng)該 答案:32、 一個(gè)循環(huán)隊(duì)列 Q 的存儲(chǔ)空間大小為 M,其隊(duì)頭和隊(duì)尾指針?lè)謩e為front 和 rear,則循環(huán)隊(duì)列中元素的個(gè)數(shù)為:_答案:(rear-fro nt+M)%M3、 在具有 n 個(gè)元素的循環(huán)隊(duì)列中,隊(duì)滿時(shí)具有 _個(gè)元素。答案:n-1元素是()。A. aB. bC. cD. dD. N-2A.隊(duì)首B.隊(duì)尾C.隊(duì)前D.隊(duì)后23、若讓元素 1, 2,3 依次進(jìn)棧,則出棧次序不可能是(A. 3, 2, 1B. 2, 1, 3C. 3, 1 , 2D. 1 , 3, 224、循環(huán)隊(duì)列用數(shù)組A0 , m-1存放其元素值,已知其頭尾指針?lè)謩e是front 和 re
26、ar,則當(dāng)前隊(duì)列中的元素個(gè)數(shù)是() A. (rear-fr ont+m)%mC. rear-fro nt-1B. rear-fr ont+1D. rear-fr ont25、在解決計(jì)算機(jī)主機(jī)和打印機(jī)之間速度不匹配問(wèn)題時(shí),通常設(shè)置一個(gè)打印數(shù)據(jù)緩沖區(qū),主機(jī)將要輸出的數(shù)據(jù)依次寫入該緩沖區(qū),應(yīng)該是一個(gè)()結(jié)構(gòu)。而打印機(jī)則從該緩沖區(qū)中取走數(shù)據(jù)打印。該緩沖區(qū)C.數(shù)組D.線性表B.鏈?zhǔn)酱鎯?chǔ)的非線性結(jié)構(gòu)D.限制存取點(diǎn)的非線性結(jié)構(gòu)27、在一個(gè)鏈隊(duì)列中,假定 front 和 rear 分別為隊(duì)頭指針和隊(duì)尾指針,刪除一個(gè)結(jié)點(diǎn)的操作是() A. fron t=fr ont-nextB. rear= rear- n e
27、xtC. rear-n ext=fro nt28、隊(duì)和棧的主要區(qū)別是() A.邏輯結(jié)構(gòu)不同C.所包含的運(yùn)算個(gè)數(shù)不同D. front-n ext=rearB.存儲(chǔ)結(jié)構(gòu)不同D.限定插入和刪除的位置不同4、 設(shè)循環(huán)隊(duì)列的容量為 70,現(xiàn)經(jīng)過(guò)一系列的入隊(duì)和出隊(duì)操作后,front 為 20, rear 為 11,則隊(duì)列中元素的個(gè)數(shù)為_(kāi)。答案:615、 已知循環(huán)隊(duì)列的存儲(chǔ)空間大小為20,且當(dāng)前隊(duì)列的頭指針和尾指針的值分別為8 和 3,且該隊(duì)列的當(dāng)前的長(zhǎng)度為_(kāi)。三、判斷題1、棧和隊(duì)列都是受限的線性結(jié)構(gòu)。2、在單鏈表中,要訪問(wèn)某個(gè)結(jié)點(diǎn),只要知道該結(jié)點(diǎn)的地址即可;因此,單鏈表是一種隨機(jī) 存取結(jié)構(gòu)。3、以鏈表作為
28、棧的存儲(chǔ)結(jié)構(gòu),出棧操作必須判別棧空的情況。四、程序分析填空題1、已知棧的基本操作函數(shù):int InitStack(SqStack *S); / 構(gòu)造空棧int StackEmpty(SqStack *S); 判斷棧空int Push(SqStack *S,ElemType e); 入棧int Pop(SqStack *S,ElemType *e); 出棧函數(shù) con version 實(shí)現(xiàn)十進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制數(shù),請(qǐng)將函數(shù)補(bǔ)充完整。void con vers ion()Ini tStack(S); scanf( %c”,&N);while(N)(1)_;N=N/8;while(_ (2)_
29、)Pop(S, &e);printf( %d ,e);/conversion答案:(1)Push(S,N%8)(2)!StackEmpty(S)2、寫出算法的功能。int fun ctio n(SqQueue *Q,ElemType *e)if(Q-fr on t=Q_rear)return ERROR;*e=Q-baseQ-fro nt;Q-fro nt=(Q-fro nt+1)%MAXSIZE;return OK;3、閱讀算法 f2,并回答下列問(wèn)題:(1) 設(shè)隊(duì)列 Q=( 1, 3,5,2,4,6)。寫出執(zhí)行算法 f2 后的隊(duì)列 Q;(2) 簡(jiǎn)述算法 f2 的功能。void f2(
30、Queue *Q)DataType e;if (!QueueEmpty(Q) e=DeQueue(Q);f2(Q);En Queue(Q,e);答案:(1) 6,4,2,5,3,1( 2)將隊(duì)列倒置五、綜合題1、假設(shè)以帶頭結(jié)點(diǎn)的循環(huán)鏈表表示隊(duì)列,并且只設(shè)一個(gè)指針指向隊(duì)尾結(jié)點(diǎn),但不設(shè)頭指針,請(qǐng)寫出相應(yīng)的入隊(duì)列算法(用函數(shù)實(shí)現(xiàn))。rear答案: void En Queue(L node *rear, ElemType e) Lnode *n ew;New=(L node *)malloc(sizeof(L no de);If(!new) return ERROR;n ew-data=e; n ew
31、-n ext=rear- n ext; rear-n ext =n ew; rear =n ew;2、已知 Q 是一個(gè)非空隊(duì)列,S 是一個(gè)空棧。編寫算法,僅用隊(duì)列和棧的ADT 函數(shù)和少量工作變量,將隊(duì)列 Q 的所有元素逆置。棧的 ADT 函數(shù)有:void makeEmpty(SqStack s);置空棧void push(SqStack s,ElemType e); 元素 e 入棧ElemType pop(SqStack s); 出棧,返回棧頂元素int isEmpty(SqStack s);判斷棧空隊(duì)列的 ADT 函數(shù)有:void enQueue(Queue q,ElemType e); 元
32、素 e 入隊(duì)ElemType deQueue(Queue q); 出隊(duì),返回隊(duì)頭元素int isEmpty(Queue q); 判斷隊(duì)空答案: void Queue Inven t(Queue q) ElemType x;makeEmpty(SqStack s);while(!isEmpty(Queue q)x=deQueue(Queue q);push(SqStack s, ElemTypex);while(!isEmpty(SqStack s)x=pop(SqStack s);en Queue(Queue q, ElemType x);3、對(duì)于一個(gè)棧,給出輸入項(xiàng)A,B,C,D,如果輸入項(xiàng)序
33、列為 A,B,C,D,試給出全部可能的輸出序列。答案:出棧的可能序列:第五章數(shù)組和廣義表A.不可能是子表B.只能是子表可以是子表或原子5、數(shù)組 A0.5,0.6的每個(gè)元素占 5 個(gè)字節(jié),將其按列優(yōu)先次序存儲(chǔ)在起始地址為1000 的內(nèi)存單元中,則元素 A55的地址是(A )。A. 1175B.1180C. 1205D.1210 6、廣義表G=(a,b(c,d,(e,f),g)的長(zhǎng)度是( A )。A. 3B. 4C. 7 D. 8 7、采用稀疏矩陣的三元組表形式進(jìn)行壓縮存儲(chǔ),若要完成對(duì)三元組表進(jìn)行轉(zhuǎn)置,只要將行和列對(duì)換,這種說(shuō)法(B )。查找與索引10、對(duì)一些特殊矩陣采用壓縮存儲(chǔ)的目的主要是為了(
34、D )。C.去掉矩陣中的多余元素D.減少不必要的存儲(chǔ)空間的開(kāi)銷11、 設(shè)有一個(gè) 10 階的對(duì)稱矩陣 A,采用壓縮存儲(chǔ)方式,以行序?yàn)橹鞔鎯?chǔ),a11 為第一個(gè)元素,其存儲(chǔ)地址為 1,每元素占 1 個(gè)地址空間,則 a85 的地址為()。A. 13B. 33C. 18D. 4012、設(shè)矩陣 A 是一個(gè)對(duì)稱矩陣,為了節(jié)省存儲(chǔ),將其下三角部分按行序存放在一維數(shù)組B1,n(n-1)/2中,對(duì)下三角部分中任一元素ai,j(i=j),在一維數(shù)組B 的下標(biāo)位置 k 的值是ABCD ABDC ACDBACBD ADCBBACD BADC BCAD BCDACBDA CBAD CDBADCBA1、選擇題設(shè)廣義表L=(
35、a,b,A. 1和 1c),貝 U L 的長(zhǎng)度和深度分別為( CB. 1 和 3C. 1 和2)。D. 2 和 3廣義表(a),a)的表尾是(B )。A. aB. (a)稀疏矩陣的常見(jiàn)壓縮存儲(chǔ)方法有(A.二維數(shù)組和三維數(shù)組鏈表D.散列表和十字鏈表4、一個(gè)非空廣義表的表頭( D2、C.()CD. (a)兩種。B.三元組和散列表C.三元組和十字C.只能是原子D.A.正確B.錯(cuò)誤C.無(wú)法確定D.以上均不對(duì)& 廣義表(a,b,c)的表尾是(B )。A. b,cB. (b,c)C. c9、常對(duì)數(shù)組進(jìn)行兩種基本操作是( C )。D. (c)A.建立和刪除B.索引和修改C.查找和修改D.A.表達(dá)變得
36、簡(jiǎn)單B.對(duì)矩陣元素的存取變得簡(jiǎn)單(B )。A. i(i-1)/2+j-1B. i(i-1)/2+jC. i(i+1)/2+j-1D.i(i+1)/2+j13、廣義表 A=(a),a)的表頭是(B )。A. aB. (a)C. b D. (a)14、稀疏矩陣一般的壓縮存儲(chǔ)方法有兩種,即( C )。A.二維數(shù)組和三維數(shù)組B.三元組和散列C.三元組和十字鏈表D.散列和十字鏈表15、假設(shè)以三元組表表示稀疏矩陣,則與如圖所示三元組表對(duì)應(yīng)的C.不能遞歸定義17、對(duì)廣義表 L=(a,b),(c,d),(e,f)執(zhí)行 head(tail(head(tail(L)操作的結(jié)果是()。A.的B. eC. (e)D.
37、(e,f)二、判斷題()1、廣義表中原子個(gè)數(shù)即為廣義表的長(zhǎng)度。()2、一個(gè)稀疏矩陣采用三元組表示,若把三元組中有關(guān)行下標(biāo)與列下標(biāo)的值互換,并把 mu 和 nu的值進(jìn)行互換,則完成了矩陣轉(zhuǎn)置。(V) 3、稀疏矩陣壓縮存儲(chǔ)后,必會(huì)失去隨機(jī)存取功能。()4、廣義表的長(zhǎng)度是指廣義表中括號(hào)嵌套的層數(shù)。(V) 5、廣義表是一種多層次的數(shù)據(jù)結(jié)構(gòu),其元素可以是單原子也可以是子表。三、填空題1、 已知二維數(shù)組 Amn采用行序?yàn)橹鞣绞酱鎯?chǔ),每個(gè)元素占k 個(gè)存儲(chǔ)單元,并且第一個(gè)元素的存儲(chǔ)地址是 LOC(A00),則 Aij的地址是Loc(A00)+(i*N+i)*k_2、 廣義表運(yùn)算式 HEAD(TAIL(a,b,
38、c),(x,y,z)的結(jié)果是:(x,y,z)_。3、 二維數(shù)組,可以按照 _ 兩種不同的存儲(chǔ)方式。4、 稀疏矩陣的壓縮存儲(chǔ)方式有: _ 和_。四、綜合題1、現(xiàn)有一個(gè)稀疏矩陣,請(qǐng)給出它的三元組表。031010 0 04X5 的稀疏矩陣是(注:08060080607000070003A.B.0000050400504000000008060 080600000370000C.D.700005040350400 0000016、 以下有關(guān)廣義表白勺表述中,正確的是(A )。A.由 0 個(gè)或多個(gè)原子或子表構(gòu)成的有限.序列12-811 621 7 125j31-533 4B.至少有一個(gè)元素是子表D.不能
39、為空表矩陣的行列下標(biāo)均從1 開(kāi)始)(B )o0210002 0答案:jv12313121132233143-2第六章樹一、選擇題1、二叉樹的深度為 k,則二叉樹最多有( C )個(gè)結(jié)點(diǎn)。k-1 kA. 2kB. 2C. 2-1D. 2k-12、用順序存儲(chǔ)的方法,將完全二叉樹中所有結(jié)點(diǎn)按層逐個(gè)從左到右的順序存放在一維數(shù)組R1.N中,若結(jié)點(diǎn) Ri有右孩子,則其右孩子是(B )。A. R2i-1B. R2i+1C. R2iD. R2 川3、 設(shè) a,b 為一棵二叉樹上的兩個(gè)結(jié)點(diǎn),在中序遍歷時(shí),a 在 b 前面的條件是( B )。A. a 在 b 的右方B. a 在 b 的左方C. a 是 b 的祖先D
40、.a 是 b 的子孫4、 設(shè)一棵二叉樹的中序遍歷序列:badce, 后序遍歷序列: bdeca, 則二叉樹先序遍歷序列 為 () 。A.adbceB.decabC.debac D.abcde5、在一棵具有 5 層的滿二叉樹中結(jié)點(diǎn)總數(shù)為( A)。A. 31B. 32C. 33D. 166、 由二叉樹的前序和后序遍歷序列(B )惟一確定這棵二叉樹。A.能B.不能7、 某二叉樹的中序序列為ABCDEFG,后序序列為 BDCAFGE,則其左子樹中結(jié)點(diǎn)數(shù)目為(C )。A. 3B. 2C. 4 D. 5&若以4,5,6,7,8作為權(quán)值構(gòu)造哈夫曼樹,則該樹的帶權(quán)路徑長(zhǎng)度為(C )。A. 67B. 6
41、8C. 69D. 709、將一棵有 100 個(gè)結(jié)點(diǎn)的完全二叉樹從根這一層開(kāi)始,每一層上從左到右依次對(duì)結(jié)點(diǎn)進(jìn)行編號(hào),根結(jié)點(diǎn)的編號(hào)為 1,則編號(hào)為 49 的結(jié)點(diǎn)的左孩子編號(hào)為(A )oB.無(wú)序數(shù)據(jù)元素C.元素之間具有分支層次關(guān)系的數(shù)據(jù) D.元素之間無(wú)聯(lián)系的數(shù)據(jù)A. 98B. 9910、 表達(dá)式 a*(b+c)-d 的后綴表達(dá)式是A. abcd+-B. abc+*d-11、 對(duì)某二叉樹進(jìn)行先序遍歷的結(jié)果為結(jié)果是(B)oA. DBFEACB. DFEBCA12、 樹最適合用來(lái)表示( C)oC. 50D. 48B)oC. abc*+d-D. -+*abcdABDEFC,中序遍歷的結(jié)果為 DBFEAC,則
42、后序遍歷的C. BDFECAD. BDEFACA.有序數(shù)據(jù)元素C )。B. AB*C+D/E-F+C. ABC+*DE-F+/t 所指結(jié)點(diǎn)沒(méi)有左子樹的充要條件是(B. t-ltag=1C.13、 表達(dá)式 A*(B+C)/(D-E+F)的后綴表達(dá)式是(A. A*B+C/D-E+F14、 在線索二叉樹中,A. t-left=NULLt-ltag=1 &t-left=NULLD.以上都不對(duì)15、 任何一棵二叉樹的葉結(jié)點(diǎn)在先序、中序和后序遍歷序列中的相對(duì)次序(A.不發(fā)生改變對(duì)16、 假定在一棵二叉樹中,個(gè)。A. 15B. 16B.發(fā)生改變C.不能確定D. ABCDED*+/-+)。D.以上都不
43、度為 2 的結(jié)點(diǎn)數(shù)為 15,度為 1 的結(jié)點(diǎn)數(shù)為 30,則葉子結(jié)點(diǎn)數(shù)為()C. 1717、 在下列情況中,可稱為二叉樹的是(A.每個(gè)結(jié)點(diǎn)至多有兩棵子樹的樹C.每個(gè)結(jié)點(diǎn)至多有兩棵子樹的有序樹D. 47)。B.哈夫曼樹D.每個(gè)結(jié)點(diǎn)只有一棵子樹18、用順序存儲(chǔ)的方法,將完全二叉樹中所有結(jié)點(diǎn)按層逐個(gè)從左到右的順序存放在一維數(shù)組 R1.n中,若結(jié)點(diǎn) Ri有左孩子,則其左孩子是(A. R2i-1B. R2i+119、 下面說(shuō)法中正確的是(A.度為 2 的樹是二叉樹)。C. R2iD. R2川B. 度為 2 的有序樹是二叉樹C.子樹有嚴(yán)格左右之分的樹是二叉樹不超過(guò) 2 的樹是二叉樹20、樹的先根序列等同于與
44、該樹對(duì)應(yīng)的二叉樹的(A.先序序列B.中序序列序序列21、 按照二叉樹的定義,具有 3 個(gè)結(jié)點(diǎn)的二叉樹有C. 5 D.65 的葉子結(jié)點(diǎn)生成一棵哈夫曼樹,它的帶權(quán)路徑長(zhǎng)度為(B. 23C.53D.74D.C.種。子樹有嚴(yán)格左右之分,且度后序序列D.層A. 3B. 422、由權(quán)值為 3,6,7,2,A. 51二、判斷題()1、存在這樣的二叉樹,對(duì)它采用任何次序的遍歷,結(jié)果相同。()2、中序遍歷一棵二叉排序樹的結(jié)點(diǎn),可得到排好序的結(jié)點(diǎn)序列。()3、對(duì)于任意非空二叉樹,要設(shè)計(jì)其后序遍歷的非遞歸算法而不使用堆棧結(jié)構(gòu), 的方法是對(duì)該二叉樹采用三叉鏈表。()4、在哈夫曼編碼中,當(dāng)兩個(gè)字符出現(xiàn)的頻率相同時(shí),其編
45、碼也相同,對(duì)于這種情況應(yīng) 做特殊處理。(V) 5、一個(gè)含有 n 個(gè)結(jié)點(diǎn)的完全二叉樹,它的高度是Iog2n +1。(V) 6、完全二叉樹的某結(jié)點(diǎn)若無(wú)左孩子,則它必是葉結(jié)點(diǎn)。三、 填空題1、 具有 n 個(gè)結(jié)點(diǎn)的完全二叉樹的深度是log2n +12、 哈夫曼樹是其樹的帶權(quán)路徑長(zhǎng)度最小_3、在一棵二叉樹中,度為N2+1O4、樹內(nèi)各結(jié)點(diǎn)度的_A )。最適合_ 0的二叉樹。0 的結(jié)點(diǎn)的個(gè)數(shù)是 n 0,度為 2 的結(jié)點(diǎn)的個(gè)數(shù)為 n2,則有 n0=最大值稱為樹的度。四、代碼填空題1、函數(shù) InOrderTraverse(Bitree bt)實(shí)現(xiàn)二叉樹的中序遍歷,請(qǐng)?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。 void InOrd
46、erTraverse(BiTree bt)if(_)InO rderTraverse(bt-lchild);printf( %c ,bt-data);2、函數(shù) depth 實(shí)現(xiàn)返回二叉樹的高度,請(qǐng)?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。int depth(Bitree *t) if(t=NULL) return 0; else hl=depth(t-lchild); hr=depth(t-rchild);if(hlhr_)return hl+1;elsereturn hr+1;3、寫出下面算法的功能。Bitree *function(Bitree *bt)Bitree *t,*t1,*t2;if(bt=NUL
47、L)t=NULL;elset=(Bitree *)malloc(sizeof(Bitree); t-data=bt-data;t仁fun ctio n(bt-left);t2=fu ncti on( bt-right);t-left=t2;t-right=t1;return(t);答案:交換二叉樹結(jié)點(diǎn)左右子樹的遞歸算法4、寫出下面算法的功能。void function(Bitree *t) if(p!=NULL)function( p-lchild);function( p-rchild);printf( %d ,p-data);答案:二叉樹后序遍歷遞歸算法五、綜合題1、假設(shè)以有序?qū)Ρ硎緩碾p親
48、結(jié)點(diǎn)到孩子結(jié)點(diǎn)的一條邊,若已知樹中邊的集合為,請(qǐng)回答下列問(wèn)題:(1)哪個(gè)結(jié)點(diǎn)是根結(jié)點(diǎn)?(2 )哪些結(jié)點(diǎn)是葉子結(jié)點(diǎn)?(3)哪些結(jié)點(diǎn)是 k 的祖先?(4)哪些結(jié)點(diǎn)是 j 的兄弟?(5)樹的深度是多少?。2、 假設(shè)一棵二叉樹的先序序列為EBADCFHGIKJ 中序序列為 ABCDEFGHIJK,請(qǐng)畫出該二叉 樹。、D、E、F、G、H 組成,字母在電文中出現(xiàn)0.03,0.21,0.10。請(qǐng)為這 8 個(gè)字母設(shè)計(jì)哈答案:二叉樹形態(tài)5、試用權(quán)集合12,4,5,6,1,2構(gòu)造哈夫曼樹,并計(jì)算哈夫曼樹的帶權(quán)路徑長(zhǎng)度。 答案:3、假設(shè)用于通訊的電文僅由的頻率分別為: 夫曼編碼。B、C0.32,8 個(gè)字母 A、0.
49、07,0.19,0.02,0.06,答案:4、已知二叉樹的先序遍歷序列為ABCDEFGH,A 000B 101C 10000D 1001E 11F 10001G 01H 001中序遍歷序列為CBEDFAGH,畫出二叉樹。DI03AWPL=12*1+(4+5+6)*3+(1+2)*4=12+45+12=696、已知權(quán)值集合為5,7,2,3,6,9,要求給出哈夫曼樹,并計(jì)算帶權(quán)路徑長(zhǎng)度WPL。答案:樹形態(tài):帶權(quán)路徑長(zhǎng)度:WPL=(6+7+9)*2+5*3+(2+3)*4=44+15+20=79ABDGJEHCFIKL;中序序列:DJGBEHACKILF。畫出二叉樹& 一份電文中有 6 種字
50、符:A,B,C,D,E,F 它們的出現(xiàn)頻率依次為16,5,9,3,30,1,完成問(wèn)題:(1) 設(shè)計(jì)一棵哈夫曼樹;(畫出其樹結(jié)構(gòu))7、已知一棵二叉樹的先序序列:的形態(tài)。32(2)計(jì)算其帶權(quán)路徑長(zhǎng)度 WPL;答案:樹形態(tài):(2)帶權(quán)路徑長(zhǎng)度: WPL=30*1+16*2+9*3+5*4+(1+3)*5=30+32+27+20+20=1299、已知某森林的二叉樹如下所示,試畫出它所表示的森林。DEHFG答案:A10、 有一分電文共使用 5 個(gè)字符;a,b,c,d,e,它們的出現(xiàn)頻率依次為4、7、5、2、9,試構(gòu)造哈夫曼樹,并給出每個(gè)字符的哈夫曼編碼。11、 畫出與下圖所示的森林相對(duì)應(yīng)的二叉樹,并指出
51、森林中的葉子結(jié)點(diǎn)在二叉樹中具有什:N12、如下所示的二叉樹,請(qǐng)寫出先序、中序、后序遍歷的序列。中序:ABCDEFGHIJ后序:ACBEDHJIGF六、編程題1、編寫求一棵二叉樹中結(jié)點(diǎn)總數(shù)的算法。 答案:(以先序遍歷的方法為例)void coun t_preorder(Bitree *t, i nt *n)if(t!=NULL)*n+;coun t_preorder(t-lchild);coun t_preorder(t-lchild); 第七章圖、選擇題1、2、(12、對(duì)于具有 n 個(gè)頂點(diǎn)的圖,若采用鄰接矩陣表示,則該矩陣的大小為(2 2A. nB. nC. n-1D. (n-1)如果從無(wú)向圖
52、的任一頂點(diǎn)出發(fā)進(jìn)行一次深度優(yōu)先搜索即可訪問(wèn)所有頂點(diǎn),則該圖一定疋 )A.完全圖B.連通圖關(guān)鍵路徑是事件結(jié)點(diǎn)網(wǎng)絡(luò)中(A.從源點(diǎn)到匯點(diǎn)的最長(zhǎng)路徑C.最長(zhǎng)的回路 下面()可以判斷出一個(gè)有向圖中是否有環(huán)(回路)A.廣度優(yōu)先遍歷B.拓?fù)渑判駽.求最短路徑D.求關(guān)鍵路徑帶權(quán)有向圖 G 用鄰接矩陣 A 存儲(chǔ),則頂點(diǎn) i 的入度等于 A 中(A.第 i 行非無(wú)窮的元素之和B.第 i 列非無(wú)窮的元素個(gè)數(shù)之和C.第 i 行非無(wú)窮且非 0 的元素個(gè)數(shù)D.第 i 行與第 i 列非無(wú)窮且非 0 的元素之和C.有回路D. 一棵樹B.從源點(diǎn)到匯點(diǎn)的最短路徑D.最短的回路18、19、20、2采用鄰接表存儲(chǔ)的圖,其深度優(yōu)先遍歷
53、類似于二叉樹的(A.中序遍歷B.先序遍歷C.后序遍歷無(wú)向圖的鄰接矩陣是一個(gè)(D.按層次遍歷8、A.對(duì)稱矩陣B.零矩陣C.上三角矩陣當(dāng)利用大小為 N 的數(shù)組存儲(chǔ)循環(huán)隊(duì)列時(shí),該隊(duì)列的最大長(zhǎng)度是(A. N-2B. N-1C. N鄰接表是圖的一種()A.順序存儲(chǔ)結(jié)構(gòu)B.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)D.對(duì)角矩陣)D. N+110、11、C.索引存儲(chǔ)結(jié)構(gòu)D.散列存儲(chǔ)結(jié)構(gòu)下面有向圖所示的拓?fù)渑判虻慕Y(jié)果序列是(A. 125634B. 516234C. 123456 D.521643在無(wú)向圖中定義頂點(diǎn)vi 與 vj 之間的路徑為從 vi 到 vj 的一個(gè)(A.頂點(diǎn)序列B.邊序列C.權(quán)值總和D.邊的條數(shù)在有向圖的逆鄰接表中,每個(gè)
54、頂點(diǎn)鄰接表鏈接著該頂點(diǎn)所有(A.入邊B.出邊C.入邊和出邊13、設(shè) G1= (V1,E1)和 G2=(V2,E2)為兩個(gè)圖,如果 V1A. G1 是 G2 的子圖B. G2 是 G1 的子圖的連通分量已知一個(gè)有向圖的鄰接矩陣表示,要?jiǎng)h除所有從第12、14、15、A.將鄰接矩陣的第 i 行刪除C.將鄰接矩陣的第 i列刪除 任一個(gè)有向圖的拓?fù)湫蛄校?A.不存在B.有一個(gè)16、17、)鄰接點(diǎn)。D.不是出邊也不是入邊V2,E1 E2 則稱(C. G1 是 G2 的連通分量 D. G2 是 G1個(gè)結(jié)點(diǎn)發(fā)出的邊,應(yīng)(B.將鄰接矩陣的第 i 行元素全部置為 0 D.將鄰接矩陣的第 i 列元素全部置為 0C.
55、 一定有多個(gè)D.有一個(gè)或多個(gè)倍在一個(gè)有向圖中,所有頂點(diǎn)的入度之和等于所有頂點(diǎn)的出度之和的(A. 1/2B. 1C. 2D. 4下列關(guān)于圖遍歷的說(shuō)法不正確的是(A.B.C.D.連通圖的深度優(yōu)先搜索是一個(gè)遞歸過(guò)程圖的廣度優(yōu)先搜索中鄰接點(diǎn)的尋找具有“先進(jìn)先出”的特征非連通圖不能用深度優(yōu)先搜索法圖的遍歷要求每一頂點(diǎn)僅被訪問(wèn)一次帶權(quán)有向圖 G 用鄰接矩陣 A 存儲(chǔ),則頂點(diǎn)A.第 i 行非的元素之和C.第行非且非 0 的元素個(gè)數(shù)啲入度為 A 中:(B. 第 i 列非D.第 i 列非)的元素之和 且非 0的元素個(gè)數(shù)采用鄰接表存儲(chǔ)的圖的廣度優(yōu)先遍歷算法類似于二叉樹的(A.先序遍歷B.中序遍歷C.后序遍歷一個(gè)具
56、有 n 個(gè)頂點(diǎn)的有向圖最多有()條邊。A. nx(n-1)/2B. n(n-1)C. n(n+1)/2)D.按層次遍歷D. n18、19、20、221、已知一個(gè)有向圖的鄰接表存儲(chǔ)結(jié)構(gòu)如圖所示,根據(jù)深度優(yōu)先遍歷算法,從頂點(diǎn)v1 出發(fā),所得到的頂點(diǎn)序列是()。A. v1,v2,v3,v5,v4B. v1,v2,v3,v4,v5C. v1,v3,v4,v5,v2D. v1,v4,v3,v5,v222、關(guān)鍵路徑是事件結(jié)點(diǎn)網(wǎng)絡(luò)中()。A.從源點(diǎn)到匯點(diǎn)的最長(zhǎng)路徑B.從源點(diǎn)到匯點(diǎn)的最短路徑C.最長(zhǎng)的回路D.最短的回路23、以下說(shuō)法正確的是()。A. 連通分量是無(wú)向圖中的極小連通子圖B. 強(qiáng)連通分量是有向圖中
57、的極大強(qiáng)連通子圖C. 在一個(gè)有向圖的拓?fù)湫蛄兄腥繇旤c(diǎn)a 在頂點(diǎn) b 之前,則圖中必有一條弧 D. 對(duì)有向圖 G,如果以任一頂點(diǎn)出發(fā)進(jìn)行一次深度優(yōu)先或廣度優(yōu)先搜索能訪問(wèn)到每個(gè) 頂點(diǎn),則該圖一定是完全圖24、假設(shè)有向圖含 n 個(gè)頂點(diǎn)及 e 條弧,則表示該圖的鄰接表中包含的弧結(jié)點(diǎn)個(gè)數(shù)為()。A. nB. eC. 2eD. n*e0 1125、設(shè)圖的鄰接矩陣為0 01 ,則該圖為()01 0A.有向圖B.無(wú)向圖C.強(qiáng)連通圖D.完全圖26、為便于判別有向圖中是否存在回路,可借助于()。A.廣度優(yōu)先搜索算法B.最小生成樹算法C.最短路徑算法D.拓?fù)渑判蛩惴?7、任何一個(gè)無(wú)向連通圖的最小生成樹()種。A.只
58、有一棵B.有一棵或多棵C. 一定有多棵D.可能不存在28、 已知一有向圖的鄰接表存儲(chǔ)結(jié)構(gòu)如圖所示,根據(jù)有向圖的廣度優(yōu)先遍歷算法,從頂點(diǎn) v1出發(fā),所得到的頂點(diǎn)序列是()。A. v1,v2,v3,v4,v5B. v1,v3,v2,v4,v5C. v1,v2,v3,v5,v4D. v1,v4,v3,v5,v229、對(duì)于一個(gè)有向圖,若一個(gè)頂點(diǎn)的入度為k1,、出度為 k2,則對(duì)應(yīng)鄰接表中該頂點(diǎn)單鏈表中的結(jié)點(diǎn)數(shù)為()。A. k1B. k2C. k1+k2D. k1-k230、一個(gè)具有 8 個(gè)頂點(diǎn)的有向圖中,所有頂點(diǎn)的入度之和與所有頂點(diǎn)的出度之和的差等于()A. 16B. 4C. 031、無(wú)向圖中一個(gè)頂點(diǎn)
59、的度是指圖中()A.通過(guò)該頂點(diǎn)的簡(jiǎn)單路徑數(shù)C.與該頂點(diǎn)連通的頂點(diǎn)數(shù)二、填空題1、 n 個(gè)頂點(diǎn)的連通圖至少有 _ 邊。 答案:n-1 條2、一個(gè)連通圖的生成樹是一個(gè) _成一棵樹的 n-1 條邊。答案:極小連通子圖3、 一個(gè)圖的 _ 表示法是惟一的。答案:鄰接矩陣4、 遍歷圖的基本方法有深度優(yōu)先搜索和廣度優(yōu)先搜索,其中 _ 是一個(gè)遞歸過(guò)程。答案:深度優(yōu)先搜索5、在無(wú)向圖 G 的鄰接矩陣 A 中,若 Aij等于 1,則 Aji等于_ 答案:16、 判定一個(gè)有向圖是否存在回路,可以利用 _答案:拓?fù)渑判?、 已知一個(gè)圖的鄰接矩陣表示,計(jì)算第i 個(gè)結(jié)點(diǎn)的入度的方法是_& n 個(gè)頂點(diǎn)的無(wú)向圖最多有
60、 _ 邊。9、 已知一個(gè)圖的鄰接矩陣表示,刪除所有從第i 個(gè)結(jié)點(diǎn)出發(fā)的邊的方法是 _ 10、 若以鄰接矩陣表示有向圖, 則鄰接矩陣上第 行中非零元素的個(gè)數(shù)即為頂點(diǎn)vi 的_三、判斷題1、圖的連通分量是無(wú)向圖的極小連通子圖。D. 2B.與該頂點(diǎn)相鄰接的頂點(diǎn)數(shù)D.通過(guò)該頂點(diǎn)的回路數(shù)它包含圖中所有頂點(diǎn),但只有足以構(gòu)2、一個(gè)圖的廣度優(yōu)先搜索樹是惟一的。3、圖的深度優(yōu)先搜索序列和廣度優(yōu)先搜索序列不是惟一的。4、鄰接表只能用于存儲(chǔ)有向圖,而鄰接矩陣則可存儲(chǔ)有向圖和無(wú)向圖。5、存儲(chǔ)圖的鄰接矩陣中,鄰接矩陣的大小不但與圖的頂點(diǎn)個(gè)數(shù)有關(guān),而且與圖的邊數(shù)也有54(1)廣度優(yōu)先遍歷序列:(2)最小生成樹(prim1; 2,3, 4; 5;63152關(guān)。6、AOV 網(wǎng)是一個(gè)帶權(quán)的有向圖。7、從源點(diǎn)到終點(diǎn)的最短路徑是唯一的。&鄰接表只能
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球鈾礦資源分布與核能產(chǎn)業(yè)安全風(fēng)險(xiǎn)防控研究報(bào)告
- 2025年中國(guó)超市防盜器行業(yè)市場(chǎng)調(diào)查研究及發(fā)展戰(zhàn)略研究報(bào)告
- 中國(guó)輕質(zhì)灰砂磚行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告(2024-2030)
- 學(xué)生學(xué)習(xí)動(dòng)力與學(xué)業(yè)成就的關(guān)系研究
- 2025-2030年中國(guó)瓷器制品項(xiàng)目投資可行性研究分析報(bào)告
- 2025年魚蝦蟹配合飼料市場(chǎng)調(diào)研報(bào)告
- 脫溶機(jī)行業(yè)深度研究分析報(bào)告(2024-2030版)
- 中國(guó)生物工程藥物行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略規(guī)劃研究報(bào)告
- 北京灌封膠項(xiàng)目可行性研究報(bào)告模板參考
- 衣架燈項(xiàng)目可行性分析報(bào)告(模板參考范文)
- 刑事案件模擬法庭劇本完整版五篇
- 錄播教室設(shè)備投標(biāo)方案(技術(shù)標(biāo))
- 人行道欄桿計(jì)算
- 鹽堿地治理施工方案
- 病理英語(yǔ)詞匯表
- 設(shè)計(jì)一個(gè)數(shù)控X-Y工作臺(tái)及其控制系統(tǒng)詳解
- (完整版)新醫(yī)療器械分類目錄(舊分類對(duì)應(yīng)新分類)
- 經(jīng)濟(jì)與社會(huì):如何用決策思維洞察生活學(xué)習(xí)通課后章節(jié)答案期末考試題庫(kù)2023年
- 提高臨床標(biāo)本送檢合格率品管圈PDCA成果匯報(bào)
- 你不知道的自己
- 乙醇危險(xiǎn)化學(xué)品安全周知卡
評(píng)論
0/150
提交評(píng)論