數(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頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、-. z.第一章 概論一、選擇題1、研究數(shù)據(jù)構(gòu)造就是研究 D 。A. 數(shù)據(jù)的邏輯構(gòu)造 B. 數(shù)據(jù)的存儲構(gòu)造C. 數(shù)據(jù)的邏輯構(gòu)造和存儲構(gòu)造 D. 數(shù)據(jù)的邏輯構(gòu)造、存儲構(gòu)造及其根本操作2、算法分析的兩個(gè)主要方面是 A 。A. 空間復(fù)雜度和時(shí)間復(fù)雜度B. 正確性和簡單性C. 可讀性和文檔性 D. 數(shù)據(jù)復(fù)雜性和程序復(fù)雜性3、具有線性構(gòu)造的數(shù)據(jù)構(gòu)造是D 。A.圖 B.樹C.廣義表 D.棧4、計(jì)算機(jī)中的算法指的是解決*一個(gè)問題的有限運(yùn)算序列,它必須具備輸入、輸出、 B 等5個(gè)特性。A. 可執(zhí)行性、可移植性和可擴(kuò)大性B. 可執(zhí)行性、有窮性和確定性C. 確定性、有窮性和穩(wěn)定性 D. 易讀性、穩(wěn)定性和確定性5、

2、下面程序段的時(shí)間復(fù)雜度是 C 。for(i=0;im;i+)for(j=0;jn;j+)aij=i*j;A. O(m2)B. O(n2)C. O(m*n)D. O(m+n)6、算法是 D 。A.計(jì)算機(jī)程序 B.解決問題的計(jì)算方法C.排序算法D.解決問題的有限運(yùn)算序列7、*算法的語句執(zhí)行頻度為3n+nlog2n+n2+8,其時(shí)間復(fù)雜度表示 C 。A. O(n) B. O(nlog2n)C. O(n2)D. O(log2n)8、下面程序段的時(shí)間復(fù)雜度為 C 。i=1;while(i=n)i=i*3;A. O(n)B. O(3n)C. O(log3n) D. O(n3)9、數(shù)據(jù)構(gòu)造是一門研究非數(shù)值計(jì)

3、算的程序設(shè)計(jì)問題中計(jì)算機(jī)的數(shù)據(jù)元素以及它們之間的B 和運(yùn)算等的學(xué)科。A. 構(gòu)造B. 關(guān)系C. 運(yùn)算D. 算法10、下面程序段的時(shí)間復(fù)雜度是A 。i=s=0;while(s=(y+1)*(y+1)y=y+1;A.O(n) B.C.O(1) D. O(n2)二、填空題1、程序段i=1;while(ine*t=head B. p-ne*t=NULLC. p=NULLD. p=head6、鏈表不具有的特點(diǎn)是 。A. 可隨機(jī)訪問任一元素B. 插入刪除不需要移動元素C. 不必事先估計(jì)存儲空間D. 所需空間與線性表長度成正比7、在雙向循環(huán)鏈表中,在p指針?biāo)傅慕Y(jié)點(diǎn)后插入一個(gè)指針q所指向的新結(jié)點(diǎn),修改指針的操

4、作是 。A. p-ne*t=q;q-prior=p;p-ne*t-prior=q;q-ne*t=q;B. p-ne*t=q;p-ne*t-prior=q;q-prior=p;q-ne*t=p-ne*t;C. q-prior=p;q-ne*t=p-ne*t;p-ne*t-prior=q;p-ne*t=q;D. q-ne*t=p-ne*t;q-prior=p;p-ne*t=q;p-ne*t=q;8、線性表采用鏈?zhǔn)酱鎯r(shí),結(jié)點(diǎn)的存儲地址 。A. 必須是連續(xù)的B. 必須是不連續(xù)的C. 連續(xù)與否均可 D. 和頭結(jié)點(diǎn)的存儲地址相連續(xù)9、在一個(gè)長度為n的順序表中刪除第i個(gè)元素,需要向前移動 個(gè)元素。A. n

5、-i B. n-i+1C. n-i-1 D. i+110、線性表是n個(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)的單鏈表上查找值為*的元素時(shí),其時(shí)間復(fù)雜度為 。A. O(n) B. O(1)C. O(n2)D. O(n-1)13、線性表L=(a1,a2,an),以下說法正確的選項(xiàng)是 。A. 每個(gè)元素都有一個(gè)直接前驅(qū)和一個(gè)直接后繼B.線性表中至少要有一個(gè)元素C.表中諸元素的排列順序必須是由小到大或由大到小D.除第一個(gè)和最后一個(gè)元素外,其余每個(gè)元素都由一個(gè)

6、且僅有一個(gè)直接前驅(qū)和直接后繼14、一個(gè)順序表的第一個(gè)元素的存儲地址是90,每個(gè)元素的長度為2,則第6個(gè)元素的存儲地址是 。A. 98B. 100C. 102 D. 10615、在線性表的以下存儲構(gòu)造中,讀取元素花費(fèi)的時(shí)間最少的是 。 A. 單鏈表 B. 雙鏈表 C. 循環(huán)鏈表D. 順序表16、在一個(gè)單鏈表中,假設(shè)刪除p所指向結(jié)點(diǎn)的后續(xù)結(jié)點(diǎn),則執(zhí)行 。A. p-ne*t=p-ne*t-ne*t;B. p=p-ne*t;p-ne*t=p-ne*t-ne*t;C. p =p-ne*t;D. p=p-ne*t-ne*t;17、將長度為n的單鏈表連接在長度為m的單鏈表之后的算法的時(shí)間復(fù)雜度為 。A. O

7、(1)B. O(n)C. O(m)D. O(m+n)18、線性表的順序存儲構(gòu)造是一種 存儲構(gòu)造。A. 隨機(jī)存取B. 順序存取C. 索引存取D. 散列存取19、順序表中,插入一個(gè)元素所需移動的元素平均數(shù)是 。 A. (n-1)/2 B. n C. n+1D. (n+1)/210、循環(huán)鏈表的主要優(yōu)點(diǎn)是 。A. 不再需要頭指針B. *結(jié)點(diǎn)位置后能容易找到其直接前驅(qū)C. 在進(jìn)展插入、刪除運(yùn)算時(shí)能保證鏈表不斷開D. 在表中任一結(jié)點(diǎn)出發(fā)都能掃描整個(gè)鏈表11、不帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是 A 。A. head=NULLB. head-ne*t=NULLC. head-ne*t=headD. h

8、ead!=NULL答案B是帶頭結(jié)點(diǎn)的12、在以下對順序表進(jìn)展的操作中,算法時(shí)間復(fù)雜度為O(1)的是 。A. 訪問第i個(gè)元素的前驅(qū)1ne*t=s-ne*t;s-ne*t=p;B. s-ne*t=p;q-ne*t=s-ne*t;C. p-ne*t=s-ne*t;s-ne*t=q;D. s-ne*t=q;p-ne*t=s-ne*t;14、在以下的表達(dá)中,正確的選項(xiàng)是 。A.線性表的順序存儲構(gòu)造優(yōu)于鏈表存儲構(gòu)造B. 線性表的順序存儲構(gòu)造適用于頻繁插入/刪除數(shù)據(jù)元素的情況C.線性表的鏈表存儲構(gòu)造適用于頻繁插入/刪除數(shù)據(jù)元素的情況D.線性表的鏈表存儲構(gòu)造優(yōu)于順序存儲構(gòu)造15、在表長為n的順序表中,當(dāng)在任何

9、位置刪除一個(gè)元素的概率一樣時(shí),刪除一個(gè)元素所需移動的平均個(gè)數(shù)為 。A. (n-1)/2B. n/2C. (n+1)/2D. n16、在一個(gè)單鏈表中,q所指結(jié)點(diǎn)是p所指結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn),假設(shè)在q和p之間插入一個(gè)結(jié)點(diǎn)s,則執(zhí)行 。A. s-ne*t=p-ne*t; p-ne*t=s; B. p-ne*t=s-ne*t;s-ne*t=p; C. q-ne*t=s;s-ne*t=p; D. p-ne*t=s;s-ne*t=q;17、在單鏈表中,指針p指向元素為*的結(jié)點(diǎn),實(shí)現(xiàn)刪除*的后繼的語句是 。A. p=p-ne*t;B. p-ne*t=p-ne*t-ne*t;C. p-ne*t=p;D.p=p-ne

10、*t-ne*t;18、在頭指針為head且表長大于1的單循環(huán)鏈表中,指針p指向表中*個(gè)結(jié)點(diǎn),假設(shè)p-ne*t-ne*t=head,則 。A. p指向頭結(jié)點(diǎn)B. p指向尾結(jié)點(diǎn)C.p的直接后繼是頭結(jié)點(diǎn)D.p的直接后繼是尾結(jié)點(diǎn)二、填空題1、設(shè)單鏈表的結(jié)點(diǎn)構(gòu)造為data,ne*t。指針p指向單鏈表中的結(jié)點(diǎn),q指向新結(jié)點(diǎn),欲將q插入到p結(jié)點(diǎn)之后,則需要執(zhí)行的語句:;。答案:q-ne*t=p-ne*t p-ne*t=q2、線性表的邏輯構(gòu)造是,其所含元素的個(gè)數(shù)稱為線性表的。答案:線性構(gòu)造 長度3、寫出帶頭結(jié)點(diǎn)的雙向循環(huán)鏈表L為空表的條件。答案:L-prior=L-ne*t=L4、帶頭結(jié)點(diǎn)的單鏈表head為空

11、的條件是。答案:head-ne*t=NULL5、在一個(gè)單鏈表中刪除p所指結(jié)點(diǎn)的后繼結(jié)點(diǎn)時(shí),應(yīng)執(zhí)行以下操作:q= p-ne*t;p-ne*t= _ q-ne*t _;三、判斷題1、單鏈表不是一種隨機(jī)存儲構(gòu)造。2、在具有頭結(jié)點(diǎn)的單鏈表中,頭指針指向鏈表的第一個(gè)數(shù)據(jù)結(jié)點(diǎn)。3、用循環(huán)單鏈表表示的鏈隊(duì)列中,可以不設(shè)隊(duì)頭指針,僅在隊(duì)尾設(shè)置隊(duì)尾指針。4、順序存儲方式只能用于存儲線性構(gòu)造。5、在線性表的順序存儲構(gòu)造中,邏輯上相鄰的兩個(gè)元素但是在物理位置上不一定是相鄰的。6、鏈?zhǔn)酱鎯Φ木€性表可以隨機(jī)存取。*四、程序分析填空題1、函數(shù)GetElem實(shí)現(xiàn)返回單鏈表的第i個(gè)元素,請?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。int Ge

12、tElem(LinkList L,int i,Elemtype *e)LinkList p;int j;p=L-ne*t;j=1;while(p&ji) return ERROR;*e= (2) ;return OK;答案:(1)p=p-ne*t (2)p-data2、函數(shù)實(shí)現(xiàn)單鏈表的插入算法,請?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。int ListInsert(LinkList L,int i,ElemType e) LNode *p,*s;int j; p=L;j=0; while(p!=NULL)&(jne*t;j+; if(p=NULL|ji-1) return ERROR; s=(LNode *)

13、malloc(sizeof(LNode); s-data=e; (1) ; (2) ; return OK;/*ListInsert*/答案:(1)s-ne*t=p-ne*t (2)p-ne*t=s3、函數(shù)ListDelete_sq實(shí)現(xiàn)順序表刪除算法,請?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。int ListDelete_sq(Sqlist *L,int i) int k; if(iL-length) return ERROR;for(k=i-1;klength-1;k+) L-slistk= 1 ; 2 ; return OK;答案:1L-slistk+1 2 -L-Length 4、函數(shù)實(shí)現(xiàn)單鏈表的刪除算

14、法,請?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。int ListDelete(LinkList L,int i,ElemType *s) LNode *p,*q; int j; p=L;j=0; while( 1 )&(jne*t;j+; if(p-ne*t=NULL|ji-1) return ERROR; q=p-ne*t; 2 ; *s=q-data; free(q); return OK;/*listDelete*/答案:(1)p-ne*t!=NULL (2)p-ne*t=q-ne*t5、寫出算法的功能。int L(head)node * head;int n=0;node *p;p=head;while

15、(p!=NULL) p=p-ne*t; n+; return(n);答案:求單鏈表head的長度五、綜合題1、編寫算法,實(shí)現(xiàn)帶頭結(jié)點(diǎn)單鏈表的逆置算法。答案:void invent(Lnode *head) Lnode *p,*q; if(!head-ne*t) return ERROR; p=head-ne*t; q=p-ne*t; p-ne*t =NULL; while(q) p=q; q=q-ne*t; p-ne*t=head-ne*t; head-ne*t=p; 2、有兩個(gè)循環(huán)鏈表,鏈頭指針分別為L1和L2,要求寫出算法將L2鏈表鏈到L1鏈表之后,且連接后仍保持循環(huán)鏈表形式。答案:voi

16、d merge(Lnode *L1, Lnode *L2) Lnode *p,*q ; while(p-ne*t!=L1)p=p-ne*t;while(q-ne*t!=L2)q=q-ne*t;q-ne*t=L1; p-ne*t =L2; 3、設(shè)一個(gè)帶頭結(jié)點(diǎn)的單向鏈表的頭指針為head,設(shè)計(jì)算法,將鏈表的記錄,按照data域的值遞增排序。答案:void assending(Lnode *head) Lnode *p,*q , *r, *s; p=head-ne*t; q=p-ne*t; p-ne*t=NULL; while(q)r=q; q=q-ne*t;if(r-datadata) r-ne*

17、t=p; head-ne*t=r; p=r; elsewhile(!p & r-datap-data)s=p; p=p-ne*t; r-ne*t=p; s-ne*t=r;p=head-ne*t; 4、編寫算法,將一個(gè)頭指針為head不帶頭結(jié)點(diǎn)的單鏈表改造為一個(gè)單向循環(huán)鏈表,并分析算法的時(shí)間復(fù)雜度。答案:void linklist_c(Lnode *head) Lnode *p; p=head; if(!p) return ERROR;while(p-ne*t!=NULL)p=p-ne*t;p-ne*t=head; 設(shè)單鏈表的長度數(shù)據(jù)結(jié)點(diǎn)數(shù)為N,則該算法的時(shí)間主要花費(fèi)在查找鏈表最后一個(gè)結(jié)點(diǎn)上算法

18、中的while循環(huán),所以該算法的時(shí)間復(fù)雜度為ON。5、head為帶頭結(jié)點(diǎn)的單循環(huán)鏈表的頭指針,鏈表中的數(shù)據(jù)元素依次為a1,a2,a3,a4,an,A為指向空的順序表的指針。閱讀以下程序段,并答復(fù)以下問題:1寫出執(zhí)行以下程序段后的順序表A中的數(shù)據(jù)元素;2簡要表達(dá)該程序段的功能。if(head-ne*t!=head)p=head-ne*t;A-length=0;while(p-ne*t!=head)p=p-ne*t;A-dataA-length +=p-data;if(p-ne*t!=head)p=p-ne*t;答案: (1) (a2, a4, , ) (2)將循環(huán)單鏈表中偶數(shù)結(jié)點(diǎn)位置的元素值寫入

19、順序表A6、設(shè)順序表va中的數(shù)據(jù)元數(shù)遞增有序。試寫一算法,將*插入到順序表的適當(dāng)位置上,以保持該表的有序性。答案:void Insert_sq(Sqlist va, ElemType *) int i, j, n; n=length(va); if(*=vai)van=*;elsei=0;while(*vai) i+;for(j=n-1;j=I;j-)vaj+1=vaj;vai=*; n+; 7、假設(shè)線性表采用順序存儲構(gòu)造,表中元素值為整型。閱讀算法f2,設(shè)順序表L=(3,7,3,2,1,1,8,7,3),寫出執(zhí)行算法f2后的線性表L的數(shù)據(jù)元素,并描述該算法的功能。 void f2(SeqLi

20、st *L) int i,j,k;k=0;for(i=0;ilength;i+) for(j=0;jdatai!=L-dataj;j+);if(j=k) if(k!=i)L-datak=L-datai;k+;L-length=k;答案:(3,7,2,1,8) 刪除順序表中重復(fù)的元素8、線性表中的元素以值遞增有序排列,并以單鏈表作存儲構(gòu)造。試寫一算法,刪除表中所有大于*且小于y的元素假設(shè)表中存在這樣的元素同時(shí)釋放被刪除結(jié)點(diǎn)空間。答案:void Delete_list(Lnode *head, ElemType *, ElemType y) Lnode *p, *q; if(!head) retu

21、rn ERROR;p=head; q=p;while(!p) if(p-data*) & (p-datane*t; free(p); p=head; q=p; elseq-ne*t=p-ne*t; free(p);p=q-ne*t; elseq=p; p=p-ne*t; 9、在帶頭結(jié)點(diǎn)的循環(huán)鏈表L中,結(jié)點(diǎn)的數(shù)據(jù)元素為整型,且按值遞增有序存放。給定兩個(gè)整數(shù)a和b,且arear=Q-frontB. Q-rear=Q-front+1C. Q-front=(Q-rear+1)%nD. Q-front=(Q-rear-1)%n3、設(shè)計(jì)一個(gè)判別表達(dá)式中括號是否配對的算法,采用 數(shù)據(jù)構(gòu)造最正確。A. 順序表

22、 B. 鏈表C. 隊(duì)列D. 棧4、帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是 。A. head=NULLB. head-ne*t=NULLC. head-ne*t!=NULL D. head!=NULL5、一個(gè)棧的輸入序列為:1,2,3,4,則棧的不可能輸出的序列是 。A. 1243 B. 2134 C. 1432 D. 4312E. 32146、假設(shè)用一個(gè)大小為6的數(shù)組來實(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. 隊(duì)

23、頭C. 隊(duì)列任意位置D. 隊(duì)頭元素后8、循環(huán)隊(duì)列的隊(duì)頭和隊(duì)尾指針分別為front和rear,則判斷循環(huán)隊(duì)列為空的條件是 。A. front=rear B. front=0C. rear=0 D. front=rear+19、一個(gè)順序棧S,其棧頂指針為top,則將元素e入棧的操作是 。A. *S-top=e;S-top+;B. S-top+;*S-top=e;C. *S-top=eD. S-top=e;10、表達(dá)式a*(b+c)-d的后綴表達(dá)式是 。A. abcd+-B. abc+*d-C. abc*+d- D. -+*abcd11、將遞歸算法轉(zhuǎn)換成對應(yīng)的非遞歸算法時(shí),通常需要使用 來保存中間結(jié)

24、果。A.隊(duì)列B.棧C.鏈表D.樹12、棧的插入和刪除操作在 。 A. 棧底B. 棧頂C. 任意位置 D. 指定位置13、五節(jié)車廂以編號1,2,3,4,5順序進(jìn)入鐵路調(diào)度站棧,可以得到 的編組。A. 3,4,5,1,2B. 2,4,1,3,5C. 3,5,4,2,1D. 1,3,5,2,414、判定一個(gè)順序棧S??臻g大小為n為空的條件是 。A. S-top=0B. S-top!=0C. S-top=nD. S-top!=n15、在一個(gè)鏈隊(duì)列中,front和rear分別為頭指針和尾指針,則插入一個(gè)結(jié)點(diǎn)s的操作為 。A. front=front-ne*tB. s-ne*t=rear;rear=sC.

25、 rear-ne*t=s;rear=s;D. s-ne*t=front;front=s;16、一個(gè)隊(duì)列的入隊(duì)序列是1,2,3,4,則隊(duì)列的出隊(duì)序列是 。A. 1,2,3,4B. 4,3,2,1C. 1,4,3,2D. 3,4,1,217、依次在初始為空的隊(duì)列中插入元素a,b,c,d以后,緊接著做了兩次刪除操作,此時(shí)的隊(duì)頭元素是 。A. a B. bC. cD. d18、正常情況下,刪除非空的順序存儲構(gòu)造的堆棧的棧頂元素,棧頂指針top的變化是 。A. top不變 B. top=0 C. top=top+1 D. top=top-119、判斷一個(gè)循環(huán)隊(duì)列Q空間大小為M為空的條件是 A 。A. Q

26、-front=Q-rear B. Q-rear-Q-front-1=MC. Q-front+1=Q-rearD. Q-rear+1=Q-front20、設(shè)計(jì)一個(gè)判別表達(dá)式中左右括號是否配對出現(xiàn)的算法,采用 C 數(shù)據(jù)構(gòu)造最正確。A.線性表的順序存儲構(gòu)造B. 隊(duì)列C. 棧D. 線性表的鏈?zhǔn)酱鎯?gòu)造21、當(dāng)用大小為N的數(shù)組存儲順序循環(huán)隊(duì)列時(shí),該隊(duì)列的最大長度為C。A. NB. N+1C. N-1D. N-222、隊(duì)列的刪除操作是在 A。A. 隊(duì)首B. 隊(duì)尾C. 隊(duì)前D. 隊(duì)后23、假設(shè)讓元素1,2,3依次進(jìn)棧,則出棧次序不可能是 C 。A. 3,2,1B. 2,1,3C. 3,1,2D. 1,3,2

27、24、循環(huán)隊(duì)列用數(shù)組A0,m-1存放其元素值,其頭尾指針分別是front和rear,則當(dāng)前隊(duì)列中的元素個(gè)數(shù)是 A。A. (rear-front+m)%mB. rear-front+1C. rear-front-1D. rear-front25、在解決計(jì)算機(jī)主機(jī)和打印機(jī)之間速度不匹配問題時(shí),通常設(shè)置一個(gè)打印數(shù)據(jù)緩沖區(qū),主機(jī)將要輸出的數(shù)據(jù)依次寫入該緩沖區(qū),而打印機(jī)則從該緩沖區(qū)中取走數(shù)據(jù)打印。該緩沖區(qū)應(yīng)該是一個(gè) B 構(gòu)造。A. 堆棧 B. 隊(duì)列C. 數(shù)組 D. 線性表26、棧和隊(duì)列都是C 。A. 鏈?zhǔn)酱鎯Φ木€性構(gòu)造B. 鏈?zhǔn)酱鎯Φ姆蔷€性構(gòu)造C. 限制存取點(diǎn)的線性構(gòu)造D. 限制存取點(diǎn)的非線性構(gòu)造27、

28、在一個(gè)鏈隊(duì)列中,假定front和rear分別為隊(duì)頭指針和隊(duì)尾指針,刪除一個(gè)結(jié)點(diǎn)的操作是 A 。A. front=front-ne*t B. rear= rear-ne*tC. rear-ne*t=frontD. front-ne*t=rear28、隊(duì)和棧的主要區(qū)別是 D 。A. 邏輯構(gòu)造不同B.存儲構(gòu)造不同C. 所包含的運(yùn)算個(gè)數(shù)不同D. 限定插入和刪除的位置不同二、填空題1、設(shè)棧S和隊(duì)列Q的初始狀態(tài)為空,元素e1,e2,e3,e4,e5,e6依次通過棧S,一個(gè)元素出棧后即進(jìn)入隊(duì)列Q,假設(shè)6個(gè)元素出隊(duì)的序列是e2,e4,e3,e6,e5,e1,則棧的容量至少應(yīng)該是。答案:32、一個(gè)循環(huán)隊(duì)列Q的存

29、儲空間大小為M,其隊(duì)頭和隊(duì)尾指針分別為front和rear,則循環(huán)隊(duì)列中元素的個(gè)數(shù)為:。答案:(rear-front+M)%M3、在具有n個(gè)元素的循環(huán)隊(duì)列中,隊(duì)滿時(shí)具有個(gè)元素。答案:n-14、設(shè)循環(huán)隊(duì)列的容量為70,現(xiàn)經(jīng)過一系列的入隊(duì)和出隊(duì)操作后,front為20,rear為11,則隊(duì)列中元素的個(gè)數(shù)為。答案:615、循環(huán)隊(duì)列的存儲空間大小為20,且當(dāng)前隊(duì)列的頭指針和尾指針的值分別為8和3,且該隊(duì)列的當(dāng)前的長度為_15_。三、判斷題1、棧和隊(duì)列都是受限的線性構(gòu)造。2、在單鏈表中,要訪問*個(gè)結(jié)點(diǎn),只要知道該結(jié)點(diǎn)的地址即可;因此,單鏈表是一種隨機(jī)存取構(gòu)造。3、以鏈表作為棧的存儲構(gòu)造,出棧操作必須判別

30、??盏那闆r。四、程序分析填空題1、棧的根本操作函數(shù):int InitStack(SqStack *S); /構(gòu)造空棧int StackEmpty(SqStack *S);/判斷??読nt Push(SqStack *S,ElemType e);/入棧int Pop(SqStack *S,ElemType *e);/出棧函數(shù)conversion實(shí)現(xiàn)十進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制數(shù),請將函數(shù)補(bǔ)充完整。void conversion()InitStack(S);scanf(%d,&N);while(N) 1 ;N=N/8;while( 2 )Pop(S,&e);printf(%d,e);/conversion

31、答案:1Push(S,N%8) 2!StackEmpty(S)2、寫出算法的功能。int function(SqQueue *Q,ElemType *e)if(Q-front=Q-rear)return ERROR;*e=Q-baseQ-front;Q-front=(Q-front+1)%MA*SIZE;return OK;假設(shè)循環(huán)隊(duì)列非空,隊(duì)頭元素出隊(duì)列且返回其值,否則返回空元素。3、閱讀算法f2,并答復(fù)以下問題:1設(shè)隊(duì)列Q=1,3,5,2,4,6。寫出執(zhí)行算法f2后的隊(duì)列Q;2簡述算法f2的功能。void f2(Queue *Q) DataType e; if (!QueueEmpty(Q

32、) e=DeQueue(Q); f2(Q);EnQueue(Q,e); 答案:16,4,2,5,3,12將隊(duì)列倒置五、綜合題1、假設(shè)以帶頭結(jié)點(diǎn)的循環(huán)鏈表表示隊(duì)列,并且只設(shè)一個(gè)指針指向隊(duì)尾結(jié)點(diǎn),但不設(shè)頭指針,請寫出相應(yīng)的入隊(duì)列算法用函數(shù)實(shí)現(xiàn)。答案:void EnQueue(Lnode *rear, ElemType e) Lnode *new;New=(Lnode *)malloc(sizeof(Lnode);If(!new) return ERROR;new-data=e; new-ne*t=rear-ne*t; rear-ne*t=new; rear =new; 2、Q是一個(gè)非空隊(duì)列,S是一

33、個(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);元素e入隊(duì)ElemType deQueue(Queue q);出隊(duì),返回隊(duì)頭元素int isEmpty(Queue q);判斷隊(duì)空答案:void QueueInv

34、ent(Queue q) ElemType *; makeEmpty(SqStack s);while(!isEmpty(Queue q)*=deQueue(Queue q);push(SqStack s, ElemType*);while(!isEmpty(SqStack s)*=pop(SqStack s); enQueue(Queue q, ElemType *); 3、對于一個(gè)棧,給出輸入項(xiàng)A,B,C,D,如果輸入項(xiàng)序列為A,B,C,D,試給出全部可能的輸出序列。4,1,4,1,2,1,1答案:出棧的可能序列:ABCD ABDC ACDB ACBD ADCB BACD BADC BCA

35、D BCDA BDCACBDA CBAD CDBA DCBA第四章 串一、選擇題1、設(shè)有兩個(gè)串S1和S2,求串S2在S1中首次出現(xiàn)位置的運(yùn)算稱作 C 。A.連接B.求子串C.模式匹配D.判斷子串2、串S=aaab,則ne*t數(shù)組值為 A 。A. 0123 B. 1123C. 1231D. 12113、串與普通的線性表相比擬,它的特殊性表達(dá)在C 。A. 順序的存儲構(gòu)造B. 鏈?zhǔn)酱鎯?gòu)造C. 數(shù)據(jù)元素是一個(gè)字符 D. 數(shù)據(jù)元素任意4、設(shè)串長為n,模式串長為m,則KMP算法所需的附加空間為 A 。 A. O(m) B. O(n) C. O(m*n) D. O(nlog2m)5、空串和空格串B 。 A

36、. 一樣 B. 不一樣 C. 可能一樣 D. 無法確定6、與線性表相比,串的插入和刪除操作的特點(diǎn)是 B 。A. 通常以串整體作為操作對象B. 需要更多的輔助空間C. 算法的時(shí)間復(fù)雜度較高D. 涉及移動的元素更多7、設(shè)SUBSTR(S,i,k)是求S中從第i個(gè)字符開場的連續(xù)k個(gè)字符組成的子串的操作,則對于S=Beijing&Nanjing,SUBSTR(S,4,5)= B 。A. ijing B. jing&C.ingNa D. ing&N二、判斷題 1、造成簡單模式匹配算法BF算法執(zhí)行效率低的原因是有回溯存在。 2、KMP算法的最大特點(diǎn)是指示主串的指針不需要回溯。3、完全二叉樹*結(jié)點(diǎn)有右子樹,

37、則必然有左子樹。三、填空題1、求子串在主串中首次出現(xiàn)的位置的運(yùn)算稱為模式匹配。2、設(shè)s=IAMATEACHER,其長度是_14_。3、兩個(gè)串相等的充分必要條件是兩個(gè)串的長度相等且對應(yīng)位置字符一樣 。四、程序填空題1、函數(shù)kmp實(shí)現(xiàn)串的模式匹配,請?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。intkmp(sqstring *s,sqstring *t,int start,int ne*t)int i=start-1,j=0; while(ilen&jlen) if(j=-1|s-datai=t-dataj) i+;j+; else j= ne*tj ; if(j=t-len) return( i=t-len+1 )

38、; else return(-1);2、函數(shù)實(shí)現(xiàn)串的模式匹配算法,請?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。intinde*_bf(sqstring*s,sqstring *t,int start) int i=start-1,j=0; while(ilen&jlen) if(s-datai=t-dataj)i+;j+; else i=i-j+1;j=0; if(j=t-len) returni-t-len+1; else return -1;/*listDelete*/3、寫出下面算法的功能。int function(SqString *s1,SqString *s2)int i;for(i=0;ileng

39、th&ilength;i+)if(s-datai!=s2-datai)return s1-datai-s2-datai;return s1-length-s2-length;答案:.串比擬算法4、寫出算法的功能。int fun(sqstring*s,sqstring *t,int start) int i=start-1,j=0; while(ilen&jlen) if(s-datai=t-dataj)i+;j+; else i=i-j+1;j=0; if(j=t-len) return i-t-len+1; else return -1;答案:串的模式匹配算法第五章 數(shù)組和廣義表一、選擇題1

40、、設(shè)廣義表L=(a,b,c),則L的長度和深度分別為 C 。A. 1和1 B. 1和3C. 1和2D. 2和32、廣義表(a),a)的表尾是 B 。A. a B. (a)C. ()D. (a)3、稀疏矩陣的常見壓縮存儲方法有 C 兩種。A.二維數(shù)組和三維數(shù)組 B.三元組和散列表C.三元組和十字鏈表D.散列表和十字鏈表4、一個(gè)非空廣義表的表頭 D 。A. 不可能是子表 B. 只能是子表C. 只能是原子 D. 可以是子表或原子5、數(shù)組A0.5,0.6的每個(gè)元素占5個(gè)字節(jié),將其按列優(yōu)先次序存儲在起始地址為1000的內(nèi)存單元中,則元素A55的地址是A 。A. 1175B. 1180C. 1205 D.

41、 12106、廣義表G=(a,b(c,d,(e,f),g)的長度是 A 。A. 3 B. 4C. 7D. 87、采用稀疏矩陣的三元組表形式進(jìn)展壓縮存儲,假設(shè)要完成對三元組表進(jìn)展轉(zhuǎn)置,只要將行和列對換,這種說法 B 。A. 正確B. 錯誤C. 無法確定 D. 以上均不對8、廣義表(a,b,c)的表尾是 B 。A. b,c B. (b,c)C. cD. (c)9、常對數(shù)組進(jìn)展兩種根本操作是 C 。A. 建立和刪除 B. 索引和修改C. 查找和修改 D. 查找與索引10、對一些特殊矩陣采用壓縮存儲的目的主要是為了 D 。A. 表達(dá)變得簡單B.對矩陣元素的存取變得簡單C. 去掉矩陣中的多余元素 D.

42、減少不必要的存儲空間的開銷11、設(shè)有一個(gè)10階的對稱矩陣A,采用壓縮存儲方式,以行序?yàn)橹鞔鎯?,a11為第一個(gè)元素,其存儲地址為1,每元素占1個(gè)地址空間,則a85的地址為 B 。A. 13B. 33C. 18D. 4012、設(shè)矩陣A是一個(gè)對稱矩陣,為了節(jié)省存儲,將其下三角局部按行序存放在一維數(shù)組B1,n(n-1)/2中,對下三角局部中任一元素ai,j(i=j),在一維數(shù)組B的下標(biāo)位置k的值是 B 。A. i(i-1)/2+j-1 B. i(i-1)/2+jC. i(i+1)/2+j-1D. i(i+1)/2+j13、廣義表A=(a),a)的表頭是 B 。A. a B. (a)C. bD. (a)

43、14、稀疏矩陣一般的壓縮存儲方法有兩種,即 C 。A. 二維數(shù)組和三維數(shù)組B.三元組和散列C.三元組和十字鏈表D.散列和十字鏈表15、假設(shè)以三元組表表示稀疏矩陣,則與如下圖三元組表對應(yīng)的45的稀疏矩陣是注:矩陣的行列下標(biāo)均從1開場 B 。A. B.C. D.16、以下有關(guān)廣義表的表述中,正確的選項(xiàng)是 A 。A. 由0個(gè)或多個(gè)原子或子表構(gòu)成的有限序列 B. 至少有一個(gè)元素是子表C. 不能遞歸定義D. 不能為空表17、對廣義表L=(a,b),(c,d),(e,f)執(zhí)行head(tail(head(tail(L)操作的結(jié)果是D 。A. 的B. eC. (e)D.e,f二、判斷題 1、廣義表中原子個(gè)數(shù)

44、即為廣義表的長度。 2、一個(gè)稀疏矩陣采用三元組表示,假設(shè)把三元組中有關(guān)行下標(biāo)與列下標(biāo)的值互換,并把mu和nu的值進(jìn)展互換,則完成了矩陣轉(zhuǎn)置。 3、稀疏矩陣壓縮存儲后,必會失去隨機(jī)存取功能。 4、廣義表的長度是指廣義表中括號嵌套的層數(shù)。 5、廣義表是一種多層次的數(shù)據(jù)構(gòu)造,其元素可以是單原子也可以是子表。三、填空題1、二維數(shù)組Amn采用行序?yàn)橹鞣绞酱鎯?,每個(gè)元素占k個(gè)存儲單元,并且第一個(gè)元素的存儲地址是LOC(A00),則Aij的地址是_ Loc(A00)+(i*N+j)*k _。2、廣義表運(yùn)算式HEAD(TAIL(a,b,c),(*,y,z)的結(jié)果是:(*,y,z)。3、二維數(shù)組,可以按照 列序

45、為主和行序?yàn)橹?兩種不同的存儲方式。4、稀疏矩陣的壓縮存儲方式有:三元組和十字鏈表。四、綜合題1、現(xiàn)有一個(gè)稀疏矩陣,請給出它的三元組表。答案:第六章 樹一、選擇題1、二叉樹的深度為k,則二叉樹最多有 C 個(gè)結(jié)點(diǎn)。A. 2k B. 2k-1 C. 2k-1 D. 2k-12、用順序存儲的方法,將完全二叉樹中所有結(jié)點(diǎn)按層逐個(gè)從左到右的順序存放在一維數(shù)組R1.N中,假設(shè)結(jié)點(diǎn)Ri有右孩子,則其右孩子是 B 。A. R2i-1 B. R2i+1C. R2i D. R2/i3、設(shè)a,b為一棵二叉樹上的兩個(gè)結(jié)點(diǎn),在中序遍歷時(shí),a在b前面的條件是 B 。A. a在b的右方 B. a在b的左方C. a是b的祖先

46、D. a是b的子孫4、設(shè)一棵二叉樹的中序遍歷序列:badce,后序遍歷序列:bdeca,則二叉樹先序遍歷序列為 D 。A. adbce B. decab C. debac D. abcde5、在一棵具有5層的滿二叉樹中結(jié)點(diǎn)總數(shù)為 A 。 A. 31 B. 32 C. 33 D. 166、由二叉樹的前序和后序遍歷序列 B 惟一確定這棵二叉樹。A. 能 B. 不能7、*二叉樹的中序序列為ABCDEFG,后序序列為BDCAFGE,則其左子樹中結(jié)點(diǎn)數(shù)目為 C 。A. 3B. 2C. 4D. 58、假設(shè)以4,5,6,7,8作為權(quán)值構(gòu)造哈夫曼樹,則該樹的帶權(quán)路徑長度為 C。A. 67B. 68C. 69D

47、. 709、將一棵有100個(gè)結(jié)點(diǎn)的完全二叉樹從根這一層開場,每一層上從左到右依次對結(jié)點(diǎn)進(jìn)展編號,根結(jié)點(diǎn)的編號為1,則編號為49的結(jié)點(diǎn)的左孩子編號為 A 。A. 98B. 99C. 50D. 4810、表達(dá)式a*(b+c)-d的后綴表達(dá)式是 B 。A. abcd+-B. abc+*d-C. abc*+d- D. -+*abcd11、對*二叉樹進(jìn)展先序遍歷的結(jié)果為ABDEFC,中序遍歷的結(jié)果為DBFEAC,則后序遍歷的結(jié)果是 B 。A. DBFEACB. DFEBCAC. BDFECAD. BDEFAC12、樹最適合用來表示 C 。A. 有序數(shù)據(jù)元素 B. 無序數(shù)據(jù)元素 C. 元素之間具有分支層次

48、關(guān)系的數(shù)據(jù) D. 元素之間無聯(lián)系的數(shù)據(jù)13、表達(dá)式A*(B+C)/(D-E+F)的后綴表達(dá)式是 C 。A. A*B+C/D-E+FB. AB*C+D/E-F+C. ABC+*DE-F+/D. ABCDED*+/-+14、在線索二叉樹中,t所指結(jié)點(diǎn)沒有左子樹的充要條件是B 。A. t-left=NULLB.t-ltag=1C. t-ltag=1&t-left=NULLD.以上都不對15、任何一棵二叉樹的葉結(jié)點(diǎn)在先序、中序和后序遍歷序列中的相對次序A。A. 不發(fā)生改變B. 發(fā)生改變C. 不能確定D. 以上都不對16、假定在一棵二叉樹中,度為2的結(jié)點(diǎn)數(shù)為15,度為1的結(jié)點(diǎn)數(shù)為30,則葉子結(jié)點(diǎn)數(shù)為 B

49、個(gè)。A. 15B. 16C. 17D. 4717、在以下情況中,可稱為二叉樹的是 B 。A.每個(gè)結(jié)點(diǎn)至多有兩棵子樹的樹B. 哈夫曼樹C. 每個(gè)結(jié)點(diǎn)至多有兩棵子樹的有序樹D. 每個(gè)結(jié)點(diǎn)只有一棵子樹18、用順序存儲的方法,將完全二叉樹中所有結(jié)點(diǎn)按層逐個(gè)從左到右的順序存放在一維數(shù)組R1.n中,假設(shè)結(jié)點(diǎn)Ri有左孩子,則其左孩子是C 。A. R2i-1 B. R2i+1C. R2i D. R2/i19、下面說法中正確的選項(xiàng)是 D 。A. 度為2的樹是二叉樹B. 度為2的有序樹是二叉樹C. 子樹有嚴(yán)格左右之分的樹是二叉樹D.子樹有嚴(yán)格左右之分,且度不超過2的樹是二叉樹20、樹的先根序列等同于與該樹對應(yīng)的二

50、叉樹的A 。A. 先序序列 B. 中序序列C. 后序序列D. 層序序列21、按照二叉樹的定義,具有3個(gè)結(jié)點(diǎn)的二叉樹有 C 種。A. 3B.4C.5D.622、由權(quán)值為3,6,7,2,5的葉子結(jié)點(diǎn)生成一棵哈夫曼樹,它的帶權(quán)路徑長度為 A 。A.51B. 23C. 53D. 74二、判斷題 1、存在這樣的二叉樹,對它采用任何次序的遍歷,結(jié)果一樣。 2、中序遍歷一棵二叉排序樹的結(jié)點(diǎn),可得到排好序的結(jié)點(diǎn)序列。 3、對于任意非空二叉樹,要設(shè)計(jì)其后序遍歷的非遞歸算法而不使用堆棧構(gòu)造,最適合的方法是對該二叉樹采用三叉鏈表。 4、在哈夫曼編碼中,當(dāng)兩個(gè)字符出現(xiàn)的頻率一樣時(shí),其編碼也一樣,對于這種情況應(yīng)做特殊處

51、理。 5、一個(gè)含有n個(gè)結(jié)點(diǎn)的完全二叉樹,它的高度是log2n1。 6、完全二叉樹的*結(jié)點(diǎn)假設(shè)無左孩子,則它必是葉結(jié)點(diǎn)。三、填空題1、具有n個(gè)結(jié)點(diǎn)的完全二叉樹的深度是log2n+1。2、哈夫曼樹是其樹的帶權(quán)路徑長度最小的二叉樹。3、在一棵二叉樹中,度為0的結(jié)點(diǎn)的個(gè)數(shù)是n0,度為2的結(jié)點(diǎn)的個(gè)數(shù)為n2,則有n0=N2+1 。4、樹內(nèi)各結(jié)點(diǎn)度的最大值稱為樹的度。四、代碼填空題1、函數(shù)InOrderTraverse(Bitree bt)實(shí)現(xiàn)二叉樹的中序遍歷,請?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。void InOrderTraverse(BiTree bt)if()InOrderTraverse(bt-lchild)

52、;printf(%c,bt-data);2、函數(shù)depth實(shí)現(xiàn)返回二叉樹的高度,請?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。int depth(Bitree *t)if(t=NULL)return 0;elsehl=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=NULL)t=NULL;elset=(Bitree *)malloc(sizeof(Bitree);t-data=bt-data;t

53、1=function(bt-left);t2=function(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親結(jié)點(diǎn)到孩子結(jié)點(diǎn)的一條邊,假設(shè)樹中邊的集合為,請答復(fù)以下問題: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的兄弟?

54、5樹的深度是多少?。2、假設(shè)一棵二叉樹的先序序列為EBADCFHGIKJ,中序序列為ABCDEFGHIJK,請畫出該二叉樹。3、假設(shè)用于通訊的電文僅由8個(gè)字母A、B、C、D、E、F、G、H組成,字母在電文中出現(xiàn)的頻率分別為:0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。請為這8個(gè)字母設(shè)計(jì)哈夫曼編碼。答案:4、二叉樹的先序遍歷序列為ABCDEFGH,中序遍歷序列為CBEDFAGH,畫出二叉樹。答案:二叉樹形態(tài) 5、試用權(quán)集合12,4,5,6,1,2構(gòu)造哈夫曼樹,并計(jì)算哈夫曼樹的帶權(quán)路徑長度。答案:WPL=12*1+(4+5+6)*3+(1+2)*4=12+45+

55、12=696、權(quán)值集合為5,7,2,3,6,9,要求給出哈夫曼樹,并計(jì)算帶權(quán)路徑長度WPL。答案:(1)樹形態(tài): (2)帶權(quán)路徑長度:WPL=(6+7+9)*2+5*3+(2+3)*4=44+15+20=797、一棵二叉樹的先序序列:ABDGJEHCFIKL;中序序列:DJGBEHACKILF。畫出二叉樹的形態(tài)。答案:8、一份電文中有6種字符:A,B,C,D,E,F,它們的出現(xiàn)頻率依次為16,5,9,3,30,1,完成問題:1設(shè)計(jì)一棵哈夫曼樹;畫出其樹構(gòu)造2計(jì)算其帶權(quán)路徑長度WPL;答案:(1)樹形態(tài): (2)帶權(quán)路徑長度:WPL=30*1+16*2+9*3+5*4+(1+3)*5=30+32

56、+27+20+20=1299、*森林的二叉樹如下所示,試畫出它所表示的森林。答案:10、有一分電文共使用5個(gè)字符;a,b,c,d,e,它們的出現(xiàn)頻率依次為4、7、5、2、9,試構(gòu)造哈夫曼樹,并給出每個(gè)字符的哈夫曼編碼。11、畫出與以下圖所示的森林相對應(yīng)的二叉樹,并指出森林中的葉子結(jié)點(diǎn)在二叉樹中具有什么特點(diǎn)。12、如下所示的二叉樹,請寫出先序、中序、后序遍歷的序列。答案:先序:FDBACEGIHJ 中序:ABCDEFGHIJ 后序:ACBEDHJIGF六、編程題1、編寫求一棵二叉樹中結(jié)點(diǎn)總數(shù)的算法。答案:以先序遍歷的方法為例void count_preorder(Bitree *t, int *

57、n) if(t!=NULL)*n+;count_preorder(t-lchild);count_preorder(t-lchild); 第七章 圖一、選擇題1、12、對于具有n個(gè)頂點(diǎn)的圖,假設(shè)采用鄰接矩陣表示,則該矩陣的大小為 。A. nB. n2C. n-1D. (n-1)22、如果從無向圖的任一頂點(diǎn)出發(fā)進(jìn)展一次深度優(yōu)先搜索即可訪問所有頂點(diǎn),則該圖一定是 。A. 完全圖B. 連通圖C. 有回路 D. 一棵樹3、關(guān)鍵路徑是事件結(jié)點(diǎn)網(wǎng)絡(luò)中 。A. 從源點(diǎn)到匯點(diǎn)的最長路徑B. 從源點(diǎn)到匯點(diǎn)的最短路徑C. 最長的回路D. 最短的回路4、下面 可以判斷出一個(gè)有向圖中是否有環(huán)回路。A. 廣度優(yōu)先遍歷B

58、. 拓?fù)渑判駽. 求最短路徑D. 求關(guān)鍵路徑5、帶權(quán)有向圖G用鄰接矩陣A存儲,則頂點(diǎn)i的入度等于A中 。A. 第i行非無窮的元素之和B. 第i列非無窮的元素個(gè)數(shù)之和C. 第i行非無窮且非0的元素個(gè)數(shù)D. 第i行與第i列非無窮且非0的元素之和6、采用鄰接表存儲的圖,其深度優(yōu)先遍歷類似于二叉樹的 。A. 中序遍歷B. 先序遍歷C. 后序遍歷 D. 按層次遍歷7、無向圖的鄰接矩陣是一個(gè) 。A. 對稱矩陣B. 零矩陣C. 上三角矩陣D. 對角矩陣8、當(dāng)利用大小為N的數(shù)組存儲循環(huán)隊(duì)列時(shí),該隊(duì)列的最大長度是 。A. N-2B. N-1C. N D. N+19、鄰接表是圖的一種 。A. 順序存儲構(gòu)造B.鏈?zhǔn)?/p>

59、存儲構(gòu)造 C. 索引存儲構(gòu)造 D. 散列存儲構(gòu)造10、下面有向圖所示的拓?fù)渑判虻慕Y(jié)果序列是 。A. 125634B. 516234C. 123456 D. 52164311、在無向圖中定義頂點(diǎn)vi與vj之間的路徑為從vi到vj的一個(gè) 。A. 頂點(diǎn)序列 B. 邊序列 C. 權(quán)值總和 D. 邊的條數(shù)12、在有向圖的逆鄰接表中,每個(gè)頂點(diǎn)鄰接表著該頂點(diǎn)所有 鄰接點(diǎn)。A. 入邊B. 出邊C. 入邊和出邊 D. 不是出邊也不是入邊13、設(shè)G1=(V1,E1)和G2=(V2,E2)為兩個(gè)圖,如果V1V2,E1E2則稱 。A. G1是G2的子圖 B. G2是G1的子圖 C. G1是G2的連通分量D. G2是G

60、1的連通分量14、一個(gè)有向圖的鄰接矩陣表示,要刪除所有從第i個(gè)結(jié)點(diǎn)發(fā)出的邊,應(yīng) 。A. 將鄰接矩陣的第i行刪除B. 將鄰接矩陣的第i行元素全部置為0C. 將鄰接矩陣的第i列刪除D. 將鄰接矩陣的第i列元素全部置為015、任一個(gè)有向圖的拓?fù)湫蛄?。A.不存在B. 有一個(gè)C. 一定有多個(gè)D. 有一個(gè)或多個(gè)16、在一個(gè)有向圖中,所有頂點(diǎn)的入度之和等于所有頂點(diǎn)的出度之和的 倍。A. 1/2B. 1C. 2 D. 417、以下關(guān)于圖遍歷的說法不正確的選項(xiàng)是 。A. 連通圖的深度優(yōu)先搜索是一個(gè)遞歸過程B. 圖的廣度優(yōu)先搜索中鄰接點(diǎn)的尋找具有先進(jìn)先出的特征C. 非連通圖不能用深度優(yōu)先搜索法D. 圖的遍歷要求

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論