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

下載本文檔

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

文檔簡(jiǎn)介

PAGE11數(shù)據(jù)結(jié)構(gòu)試題庫(kù)及答案第一章一、選擇題1、研究數(shù)據(jù)結(jié)構(gòu)就是研究(D)。A.數(shù)據(jù)的邏輯結(jié)構(gòu) B.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)C.數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu) D.數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及其基本操作2、算法分析的兩個(gè)主要方面是(A)。A.空間復(fù)雜度和時(shí)間復(fù)雜度 B.正確性和簡(jiǎn)單性C.可讀性和文檔性D.數(shù)據(jù)復(fù)雜性和程序復(fù)雜性3、具有線性結(jié)構(gòu)的數(shù)據(jù)結(jié)構(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、下面程序段的時(shí)間復(fù)雜度是(C)。 for(i=0;i<m;i++) for(j=0;j<n;j++) a[i][j]=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ù)結(jié)構(gòu)是一門研究非數(shù)值計(jì)算的程序設(shè)計(jì)問題中計(jì)算機(jī)的數(shù)據(jù)元素以及它們之間的(B)和運(yùn)算等的學(xué)科。A.結(jié)構(gòu) B.關(guān)系 C.運(yùn)算 D.算法10、抽象數(shù)據(jù)類型的三個(gè)組成部分分別為(A)。A.數(shù)據(jù)對(duì)象、數(shù)據(jù)關(guān)系和基本操作 B.數(shù)據(jù)元素、邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu) C.數(shù)據(jù)項(xiàng)、數(shù)據(jù)元素和數(shù)據(jù)類型 D.數(shù)據(jù)元素、數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型11、下列程序段的時(shí)間復(fù)雜度為(B)。 x=n;y=0; while(x>=(y+1)*(y+1)) y=y+1; A.O(n) B. C. O(1) D.O(n2)12.算法分析的目的是(C)A)找出數(shù)據(jù)結(jié)構(gòu)的合理性B)研究算法中的輸入和輸出的關(guān)系C)分析算法的效率以求改進(jìn)D)分析算法的易懂性和文檔性13.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無關(guān)的是數(shù)據(jù)的C結(jié)構(gòu);A)存儲(chǔ)B)物理C)邏輯D)物理和存儲(chǔ)二、填空題1.數(shù)據(jù)結(jié)構(gòu)被形式地定義為(D,R),其中D是數(shù)據(jù)元素的有限集合,R是D上的關(guān)系有限集合。2.數(shù)據(jù)結(jié)構(gòu)按邏輯結(jié)構(gòu)可分為兩大類,它們分別是線性結(jié)構(gòu)和非線性結(jié)構(gòu)。3.程序段“i=1;while(i<=n)i=i*2;”的時(shí)間復(fù)雜度為O(log2n)。4.線性結(jié)構(gòu)中元素之間存在一對(duì)一關(guān)系,樹形結(jié)構(gòu)中元素之間存在一對(duì)多關(guān)系,圖形結(jié)構(gòu)中元素之間存在多對(duì)多關(guān)系。5.在線性結(jié)構(gòu)中,第一個(gè)結(jié)點(diǎn)沒有前驅(qū)結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有1個(gè)前驅(qū)結(jié)點(diǎn);最后一個(gè)結(jié)點(diǎn)沒有后繼結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有1個(gè)后續(xù)結(jié)點(diǎn)。6.在樹形結(jié)構(gòu)中,樹根結(jié)點(diǎn)沒有前驅(qū)結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有1個(gè)前驅(qū)結(jié)點(diǎn);葉子結(jié)點(diǎn)沒有后繼結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)的后繼結(jié)點(diǎn)數(shù)可以任意多個(gè)。7.在圖形結(jié)構(gòu)中,每個(gè)結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn)數(shù)和后繼結(jié)點(diǎn)數(shù)可以任意多個(gè)。8.?dāng)?shù)據(jù)的存儲(chǔ)結(jié)構(gòu)可用兩種基本的存儲(chǔ)方法表示,它們分別是順序、鏈?zhǔn)健?.一個(gè)算法的效率可分為時(shí)間效率和空間效率。三、簡(jiǎn)答題什么是數(shù)據(jù)結(jié)構(gòu)什么是數(shù)據(jù)類型?答:簡(jiǎn)單地說,數(shù)據(jù)結(jié)構(gòu)定義了一組按某些關(guān)系結(jié)合在一起的數(shù)據(jù)元素。數(shù)據(jù)類型不僅定義了一組帶結(jié)構(gòu)的數(shù)據(jù)元素,而且還在其上定義了一組操作。2.s=0;2.s=0;for(i=0;i<n;i++)for(j=0;j<n;j++)s+=B[i][j];sum=s;O(n*n)1.1.for(i=0;i<n;i++)for(j=0;j<m;j++)A[i][j]=0;O(n*m)3.x=0;3.x=0;for(i=1;i<n;i++)for(j=1;j<=n-i;j++)x++;O(n*n)4.i=1;while(i<=n)i=i*3;O(log3n)第二章線性表一、選擇題1、若長(zhǎng)度為n的線性表采用順序存儲(chǔ)結(jié)構(gòu),在其第i個(gè)位置插入一個(gè)新元素算法的時(shí)間復(fù)雜度()。A.O(log2n) B.O(1) C.O(n) D.O(n2)2、若一個(gè)線性表中最常用的操作是取第i個(gè)元素和找第i個(gè)元素的前驅(qū)元素,則采用()存儲(chǔ)方式最節(jié)省時(shí)間。A.順序表 B.單鏈表 C.雙鏈表 D.單循環(huán)鏈表3、具有線性結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)是()。A.圖 B.樹 C.二叉樹 D.棧4、在一個(gè)長(zhǎng)度為n的順序表中,在第i個(gè)元素之前插入一個(gè)新元素時(shí),需向后移動(dòng)()個(gè)元素。A.n-i B.n-i+1 C.n-i-1 D.i5、非空的循環(huán)單鏈表head的尾結(jié)點(diǎn)p滿足()。A.p->next==head B.p->next==NULL C.p==NULL D.p==head6、鏈表不具有的特點(diǎn)是()。A.可隨機(jī)訪問任一元素 B.插入刪除不需要移動(dòng)元素 C.不必事先估計(jì)存儲(chǔ)空間 D.所需空間與線性表長(zhǎng)度成正比8、線性表采用鏈?zhǔn)酱鎯?chǔ)時(shí),結(jié)點(diǎn)的存儲(chǔ)地址()。A.必須是連續(xù)的 B.必須是不連續(xù)的 C.連續(xù)與否均可 D.和頭結(jié)點(diǎn)的存儲(chǔ)地址相連續(xù)9、在一個(gè)長(zhǎng)度為n的順序表中刪除第i個(gè)元素,需要向前移動(dòng)()個(gè)元素。A.n-i B.n-i+1 C.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)的單鏈表上查找值為x的元素時(shí),其時(shí)間復(fù)雜度為()。A.O(n) B.O(1) C.O(n2) D.O(n-1)13、線性表L=(a1,a2,……,an),下列說法正確的是()。A.每個(gè)元素都有一個(gè)直接前驅(qū)和一個(gè)直接后繼 B.線性表中至少要有一個(gè)元素C.表中諸元素的排列順序必須是由小到大或由大到小 D.除第一個(gè)和最后一個(gè)元素外,其余每個(gè)元素都由一個(gè)且僅有一個(gè)直接前驅(qū)和直接后繼14、一個(gè)順序表的第一個(gè)元素的存儲(chǔ)地址是90,每個(gè)元素的長(zhǎng)度為2,則第6個(gè)元素的存儲(chǔ)地址是()。A.98 B.100 C.102 D.10615、在線性表的下列存儲(chǔ)結(jié)構(gòu)中,讀取元素花費(fèi)的時(shí)間最少的是()。A.單鏈表 B.雙鏈表 C.循環(huán)鏈表 D.順序表16、在一個(gè)單鏈表中,若刪除p所指向結(jié)點(diǎn)的后續(xù)結(jié)點(diǎn),則執(zhí)行()。A.p->next=p->next->next;B.p=p->next;p->next=p->next->next;C.p=p->next;D.p=p->next->next;18、線性表的順序存儲(chǔ)結(jié)構(gòu)是一種()存儲(chǔ)結(jié)構(gòu)。A.隨機(jī)存取 B.順序存取 C.索引存取 D.散列存取 19、順序表中,插入一個(gè)元素所需移動(dòng)的元素平均數(shù)是()。A.(n-1)/2 B.n C.n+1 D.(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è)鏈表 12、在下列對(duì)順序表進(jìn)行的操作中,算法時(shí)間復(fù)雜度為O(1)的是()。 A.訪問第i個(gè)元素的前驅(qū)(1<) B.在第i個(gè)元素之后插入一個(gè)新元素() C.刪除第i個(gè)元素() D.對(duì)順序表中元素進(jìn)行排序13、已知指針p和q分別指向某單鏈表中第一個(gè)結(jié)點(diǎn)和最后一個(gè)結(jié)點(diǎn)。假設(shè)指針s指向另一個(gè)單鏈表中某個(gè)結(jié)點(diǎn),則在s所指結(jié)點(diǎn)之后插入上述鏈表應(yīng)執(zhí)行的語句為()。A.q->next=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;14、在以下的敘述中,正確的是()。A.線性表的順序存儲(chǔ)結(jié)構(gòu)優(yōu)于鏈表存儲(chǔ)結(jié)構(gòu) B.線性表的順序存儲(chǔ)結(jié)構(gòu)適用于頻繁插入/刪除數(shù)據(jù)元素的情況C.線性表的鏈表存儲(chǔ)結(jié)構(gòu)適用于頻繁插入/刪除數(shù)據(jù)元素的情況 D.線性表的鏈表存儲(chǔ)結(jié)構(gòu)優(yōu)于順序存儲(chǔ)結(jié)構(gòu)15、在表長(zhǎng)為n的順序表中,當(dāng)在任何位置刪除一個(gè)元素的概率相同時(shí),刪除一個(gè)元素所需移動(dòng)的平均個(gè)數(shù)為()。A.(n-1)/2 B.n/2 C.(n+1)/2 D.n16、在一個(gè)單鏈表中,已知q所指結(jié)點(diǎn)是p所指結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn),若在q和p之間插入一個(gè)結(jié)點(diǎn)s,則執(zhí)行()。A.s->next=p->next;p->next=s; B.p->next=s->next;s->next=p; C.q->next=s;s->next=p; D.p->next=s;s->next=q; 17、在單鏈表中,指針p指向元素為x的結(jié)點(diǎn),要?jiǎng)h除x的后繼,則實(shí)現(xiàn)語句是()。A.p=p->next; B.p->next=p->next->next; C.p->next=p; D.p=p->next->next;18、帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是()。A.head==NULL B.head->next==NULL C.head->next!=NULL D.head!=NULL二、填空題1、設(shè)單鏈表的結(jié)點(diǎn)結(jié)構(gòu)為(data,next)。已知指針p指向單鏈表中的結(jié)點(diǎn),q指向新結(jié)點(diǎn),欲將q插入到p結(jié)點(diǎn)之后,則需要執(zhí)行的語句:;。答案:q->next=p->next p->next=q2、線性表的邏輯結(jié)構(gòu)是,其所含元素的個(gè)數(shù)稱為線性表的。答案:線性結(jié)構(gòu)長(zhǎng)度3、寫出帶頭結(jié)點(diǎn)的雙向循環(huán)鏈表L為空表的條件。答案:L->prior==L->next==L4、帶頭結(jié)點(diǎn)的單鏈表head為空的條件是。答案:head->next==NULL5、在一個(gè)單鏈表中刪除p所指結(jié)點(diǎn)的后繼結(jié)點(diǎn)時(shí),應(yīng)執(zhí)行以下操作:q=p->next;p->next=____;答案:q->next 三、判斷題1、單鏈表不是一種隨機(jī)存儲(chǔ)結(jié)構(gòu)。2、在具有頭結(jié)點(diǎn)的單鏈表中,頭指針指向鏈表的第一個(gè)數(shù)據(jù)結(jié)點(diǎn)。3、用循環(huán)單鏈表表示的鏈隊(duì)列中,可以不設(shè)隊(duì)頭指針,僅在隊(duì)尾設(shè)置隊(duì)尾指針。4、順序存儲(chǔ)方式只能用于存儲(chǔ)線性結(jié)構(gòu)。5、在線性表的順序存儲(chǔ)結(jié)構(gòu)中,邏輯上相鄰的兩個(gè)元素但是在物理位置上不一定是相鄰的。6、鏈?zhǔn)酱鎯?chǔ)的線性表可以隨機(jī)存取。7、在單鏈表中,要訪問某個(gè)結(jié)點(diǎn),只要知道該結(jié)點(diǎn)的地址即可;因此,單鏈表是一種隨機(jī)存取結(jié)構(gòu)。四、程序分析填空題1、函數(shù)GetElem實(shí)現(xiàn)返回單鏈表的第i個(gè)元素,請(qǐng)?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。 intGetElem(LinkListL,inti,Elemtype&e){ LinkListp;intj;p=L->next;j=1; while(p&&j<i){ (1);++j;}if(!p||j>i)returnERROR;e=(2);returnOK;}答案:(1)p=p->next(2)p->data2、函數(shù)實(shí)現(xiàn)單鏈表的插入算法,請(qǐng)?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。intListInsert(LinkListL,inti,ElemTypee){LNode*p,*s;intj; p=L;j=0; while((p!=NULL)&&(j<i-1)){ p=p->next;j++; } if(p==NULL||j>i-1)returnERROR; s=(LNode*)malloc(sizeof(LNode)); s->data=e; (1); (2); returnOK;}/*ListInsert*/答案:(1)s->next=p->next(2)p->next=s3、函數(shù)實(shí)現(xiàn)單鏈表的刪除算法,請(qǐng)?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。intListDelete(LinkListL,inti,ElemType&e){LNode*p,*q;intj;p=L;j=0;while(((1))&&(j<i-1)){p=p->next;j++;}if(p->next==NULL||j>i-1)returnERROR;q=p->next;(2);e=q->data;free(q);returnOK;}/*listDelete*/答案:(1)p->next!=NULL(2)p->next=q->next4、寫出算法的功能。intfunc(LinkListL){ LinkListp=L; intn=0; while(p!=NULL) {p=p->next; n++; } return(n); }答案:求單鏈表head的長(zhǎng)度第三章棧和隊(duì)列一、選擇題1、一個(gè)棧的輸入序列為:a,b,c,d,e,則棧的不可能輸出的序列是()。A.a,b,c,d,eB.d,e,c,b,a C.d,c,e,a,b D.e,d,c,b,a2、判斷一個(gè)循環(huán)隊(duì)列Q(最多n個(gè)元素)為滿的條件是()。A.Q->rear==Q->front B.Q->rear==Q->front+1 C.Q->front==(Q->rear+1)%n D.Q->front==(Q->rear-1)%n3、設(shè)計(jì)一個(gè)判別表達(dá)式中括號(hào)是否配對(duì)的算法,采用()數(shù)據(jù)結(jié)構(gòu)最佳。A.順序表 B.鏈表 C.隊(duì)列 D.棧5、一個(gè)棧的輸入序列為:1,2,3,4,則棧的不可能輸出的序列是()。A.1243B.2134 C.1432D.4312 E.32146、若用一個(gè)大小為6的數(shù)組來實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)rear和front的值分別為0,3。當(dāng)從隊(duì)列中刪除一個(gè)元素,再加入兩個(gè)元素后,rear和front的值分別為()。A.1和5 B.2和4 C.4和2 D.5和17、隊(duì)列的插入操作是在()。A.隊(duì)尾 B.隊(duì)頭 C.隊(duì)列任意位置 D.隊(duì)頭元素后9、一個(gè)順序棧S,其棧頂指針為top,則將元素e入棧的操作是()。A.*S->top=e;S->top++; B.S->top++;*S->top=e; C.*S->top=e D.S->top=e;10、表達(dá)式a*(b+c)-d的后綴表達(dá)式是()。A.abcd+- B.abc+*d- C.abc*+d- D.-+*abcd11、將遞歸算法轉(zhuǎn)換成對(duì)應(yīng)的非遞歸算法時(shí),通常需要使用()來保存中間結(jié)果。A.隊(duì)列 B.棧 C.鏈表 D.樹12、棧的插入和刪除操作在()。A.棧底 B.棧頂 C.任意位置 D.指定位置13、五節(jié)車廂以編號(hào)1,2,3,4,5順序進(jìn)入鐵路調(diào)度站(棧),可以得到()的編組。 A.3,4,5,1,2 B.2,4,1,3,5 C.3,5,4,2,1 D.1,3,5,2,414、判定一個(gè)順序棧S(棧空間大小為n)為空的條件是()。A.S->top==0 B.S->top!=0 C.S->top==n D.S->top!=n15、在一個(gè)鏈隊(duì)列中,front和rear分別為頭指針和尾指針,則插入一個(gè)結(jié)點(diǎn)s的操作為()。A.front=front->next B.s->next=rear;rear=sC.rear->next=s;rear=s; D.s->next=front;front=s;16、一個(gè)隊(duì)列的入隊(duì)序列是1,2,3,4,則隊(duì)列的出隊(duì)序列是()。 A.1,2,3,4 B.4,3,2,1 C.1,4,3,2 D.3,4,1,217、依次在初始為空的隊(duì)列中插入元素a,b,c,d以后,緊接著做了兩次刪除操作,此時(shí)的隊(duì)頭元素是()。A.a B.b C.c D.d18、正常情況下,刪除非空的順序存儲(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->front==Q->rear B.Q->rear-Q->front-1==MC.Q->front+1=Q->rear D.Q->rear+1=Q->front21、當(dāng)用大小為N的數(shù)組存儲(chǔ)順序循環(huán)隊(duì)列時(shí),該隊(duì)列的最大長(zhǎng)度為()。A.N B.N+1 C.N-1 D.N-222、隊(duì)列的刪除操作是在()。A.隊(duì)尾 B.隊(duì)頭 C.隊(duì)列任意位置 D.隊(duì)頭元素后23、若讓元素1,2,3依次進(jìn)棧,則出棧次序不可能是()。A.3,2,1 B.2,1,3 C.3,1,2 D.1,3,224、循環(huán)隊(duì)列用數(shù)組A[0,m-1]存放其元素值,已知其頭尾指針分別是front和rear,則當(dāng)前隊(duì)列中的元素個(gè)數(shù)是()。 A.(rear-front+m)%m B.rear-front+1 C.rear-front-1 D.rear-front25、在解決計(jì)算機(jī)主機(jī)和打印機(jī)之間速度不匹配問題時(shí),通常設(shè)置一個(gè)打印數(shù)據(jù)緩沖區(qū),主機(jī)將要輸出的數(shù)據(jù)依次寫入該緩沖區(qū),而打印機(jī)則從該緩沖區(qū)中取走數(shù)據(jù)打印。該緩沖區(qū)應(yīng)該是一個(gè)()結(jié)構(gòu)。A.堆棧 B.隊(duì)列 C.數(shù)組 D.線性表26、棧和隊(duì)列都是()。A.鏈?zhǔn)酱鎯?chǔ)的線性結(jié)構(gòu) B.鏈?zhǔn)酱鎯?chǔ)的非線性結(jié)構(gòu)C.限制插入刪除位置的線性結(jié)構(gòu) D.限制存取點(diǎn)的非線性結(jié)構(gòu)27、在一個(gè)鏈隊(duì)列中,假定front和rear分別為隊(duì)頭指針和隊(duì)尾指針,刪除一個(gè)結(jié)點(diǎn)的操作是()。A.front=front->next B.rear=rear->next C.rear->next=front D.front->next=rear28、隊(duì)和棧的主要區(qū)別是()。A.邏輯結(jié)構(gòu)不同 B.存儲(chǔ)結(jié)構(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,若6個(gè)元素出隊(duì)的序列是e2,e4,e3,e6,e5,e1,則棧的容量至少應(yīng)該是。答案:32、一個(gè)循環(huán)隊(duì)列Q的存儲(chǔ)空間大小為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ì)列的存儲(chǔ)空間大小為20,且當(dāng)前隊(duì)列的頭指針和尾指針的值分別為8和3,且該隊(duì)列的當(dāng)前的長(zhǎng)度為_______。答案:15三、判斷題1、棧和隊(duì)列都是受限的線性結(jié)構(gòu)。3、以鏈表作為棧的存儲(chǔ)結(jié)構(gòu),出棧操作必須判別??盏那闆r。四、程序分析填空題1、已知棧的基本操作函數(shù): intInitStack(SqStack*S);//構(gòu)造空棧 intStackEmpty(SqStack*S);//判斷棧空 intPush(SqStack*S,ElemTypee);//入棧 intPop(SqStack*S,ElemType*e);//出棧函數(shù)conversion實(shí)現(xiàn)十進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制數(shù),請(qǐng)將函數(shù)補(bǔ)充完整。voidconversion(){ InitStack(S); scanf(“%d”,&N); while(N){ (1); N=N/8;}while((2)){ Pop(S,&e); printf(“%d”,e);}}//conversion答案:(1)Push(S,N%8) (2)!StackEmpty(S)2、寫出算法的功能。intfunction(SqQueue*Q,ElemType*e){ if(Q->front==Q->rear) returnERROR; *e=Q->base[Q->front]; Q->front=(Q->front+1)%MAXSIZE; returnOK;}答案:出隊(duì)。刪除順序隊(duì)列Q的隊(duì)頭元素,并將被刪元素保存至形參e第四章串一、選擇題1、設(shè)有兩個(gè)串S1和S2,求串S2在S1中首次出現(xiàn)位置的運(yùn)算稱作(C)。A.連接 B.求子串 C.模式匹配 D.判斷子串2、串與普通的線性表相比較,它的特殊性體現(xiàn)在(C)。A.順序的存儲(chǔ)結(jié)構(gòu) B.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) C.數(shù)據(jù)元素是一個(gè)字符 D.數(shù)據(jù)元素任意3、空串和空格串(B)。A.相同B.不相同 C.可能相同D.無法確定4、設(shè)SUBSTR(S,i,k)是求S中從第i個(gè)字符開始的連續(xù)k個(gè)字符組成的子串的操作,則對(duì)于S=’Beijing&Nanjing’,SUBSTR(S,4,5)=(B)。A.‘ijing’ B.‘jing&’ C.‘ingNa’ D.‘ing&N’第五章數(shù)組和廣義表一、選擇題1、設(shè)廣義表L=((a,b,c)),則L的長(zhǎng)度和深度分別為(C)。A.1和1 B.1和3 C.1和2 D.2和32、廣義表((a),a)的表尾是(B)。A.a B.(a) C.() D.((a))3、稀疏矩陣的常見壓縮存儲(chǔ)方法有(C)兩種。A.二維數(shù)組和三維數(shù)組 B.三元組和散列表C.三元組和十字鏈表 D.散列表和十字鏈表4、一個(gè)非空廣義表中的數(shù)據(jù)元素(D)。A.不可能是子表 B.只能是子表 C.只能是原子 D.可以是子表或原子6、廣義表G=(a,(b,c,d,(e,f)),g)的長(zhǎng)度是(A)。A.3 B.4 C.7 D.87、采用稀疏矩陣的三元組表形式進(jìn)行壓縮存儲(chǔ),若要完成對(duì)三元組表進(jìn)行轉(zhuǎn)置,只要將行和列對(duì)換,這種說法(B)。A.正確B.錯(cuò)誤 C.無法確定 D.以上均不對(duì)8、廣義表(a,b,c)的表尾是(B)。A.b,c B.(b,c) C.c D.(c)9、常對(duì)數(shù)組進(jìn)行兩種基本操作是(C)。A.建立和刪除B.索引和修改 C.查找和修改 D.查找與索引10、對(duì)一些特殊矩陣采用壓縮存儲(chǔ)的目的主要是為了(D)。A.表達(dá)變得簡(jiǎn)單 B.對(duì)矩陣元素的存取變得簡(jiǎn)單 C.去掉矩陣中的多余元素 D.減少不必要的存儲(chǔ)空間的開銷11、設(shè)有一個(gè)10階的對(duì)稱矩陣A,采用壓縮存儲(chǔ)方式,以行序?yàn)橹鞔鎯?chǔ),a11為第一個(gè)元素,其存儲(chǔ)地址為1,每元素占1個(gè)地址空間,則a85的地址為()。A.13 B.33 C.18 D.4012、設(shè)矩陣A是一個(gè)對(duì)稱矩陣,為了節(jié)省存儲(chǔ),將其下三角部分按行序存放在一維數(shù)組B[1,n(n-1)/2]中,對(duì)下三角部分中任一元素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-1 D.i(i+1)/2+j13、廣義表A=((a),a)的表頭是(B)。A.a B.(a) C.b D.((a))14、稀疏矩陣一般的壓縮存儲(chǔ)方法有兩種,即(C)。A.二維數(shù)組和三維數(shù)組 B.三元組和散列 C.三元組和十字鏈表 D.散列和十字鏈表15、假設(shè)以三元組表表示稀疏矩陣,則與如圖所示三元組表對(duì)應(yīng)的4×5的稀疏矩陣是(注:矩陣的行列下標(biāo)均從1開始)(B)。A. B. C. D.16、以下有關(guān)廣義表的表述中,正確的是(A)。A.由0個(gè)或多個(gè)原子或子表構(gòu)成的有限序列 B.至少有一個(gè)元素是子表C.不能遞歸定義 D.不能為空表17、對(duì)廣義表L=((a,b),((c,d),(e,f)))執(zhí)行head(tail(head(tail(L))))操作的結(jié)果是()。A.d B.e C.(e) D.(e,f)二、判斷題(錯(cuò))1、廣義表中原子個(gè)數(shù)即為廣義表的長(zhǎng)度。(錯(cuò))2、一個(gè)稀疏矩陣采用三元組表示,若把三元組中有關(guān)行下標(biāo)與列下標(biāo)的值互換,并把mu和nu的值進(jìn)行互換,則完成了矩陣轉(zhuǎn)置。(錯(cuò))3、廣義表的長(zhǎng)度是指廣義表中括號(hào)嵌套的層數(shù)。(√)4、廣義表的深度是指廣義表中括號(hào)嵌套的層數(shù)。(√)5、廣義表是一種多層次的數(shù)據(jù)結(jié)構(gòu),其元素可以是單原子也可以是子表。三、填空題1、已知二維數(shù)組A[m][n]采用行序?yàn)橹鞣绞酱鎯?chǔ),每個(gè)元素占k個(gè)存儲(chǔ)單元,并且第一個(gè)元素的存儲(chǔ)地址是LOC(A[0][0]),則A[i][j]的地址是___Loc(A[0][0])+(i*N+j)*k____。2、廣義表運(yùn)算式HEAD(TAIL((a,b,c),(x,y,z)))的結(jié)果是:(x,y,z)。3、稀疏矩陣的壓縮存儲(chǔ)方式有:三元組和十字鏈表。四、綜合題1、現(xiàn)有一個(gè)稀疏矩陣,請(qǐng)給出它的三元組表。答案:第六章樹一、選擇題1、二叉樹的深度為k,則二叉樹最多有(C)個(gè)結(jié)點(diǎn)。A.2k B.2k-1 C.2k-1 D.2k-12、用順序存儲(chǔ)的方法,將完全二叉樹中所有結(jié)點(diǎn)按層逐個(gè)從左到右的順序存放在一維數(shù)組R[1..N]中,若結(jié)點(diǎn)R[i]有右孩子,則其右孩子是(B)。A.R[2i-1]B.R[2i+1] C.R[2i] D.R[2/i]3、設(shè)a,b為一棵二叉樹上的兩個(gè)結(jié)點(diǎn),在中序遍歷時(shí),a在b前面的條件是(B)。A.a在b的右方 B.a在b的左方C.a是b的祖先 D.a是b的子孫4、設(shè)一棵二叉樹的中序遍歷序列:badce,后序遍歷序列:bdeca,則二叉樹先序遍歷序列為()。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.3 B.2 C.4 D.58、若以{4,5,6,7,8}作為權(quán)值構(gòu)造哈夫曼樹,則該樹的帶權(quán)路徑長(zhǎng)度為(C)。A.67 B.68 C.69 D.709、將一棵有100個(gè)結(jié)點(diǎn)的完全二叉樹從根這一層開始,每一層上從左到右依次對(duì)結(jié)點(diǎn)進(jìn)行編號(hào),根結(jié)點(diǎn)的編號(hào)為1,則編號(hào)為49的結(jié)點(diǎn)的左孩子編號(hào)為(A)。A.98 B.99 C.50 D.4810、表達(dá)式a*(b+c)-d的后綴表達(dá)式是(B)。A.abcd+- B.abc+*d- C.abc*+d- D.-+*abcd11、對(duì)某二叉樹進(jìn)行先序遍歷的結(jié)果為ABDEFC,中序遍歷的結(jié)果為DBFEAC,則后序遍歷的結(jié)果是(B)。 A.DBFEAC B.DFEBCA C.BDFECA D.BDEFAC12、樹最適合用來表示(C)。A.有序數(shù)據(jù)元素 B.無序數(shù)據(jù)元素C.元素之間具有分支層次關(guān)系的數(shù)據(jù) D.元素之間無聯(lián)系的數(shù)據(jù)16、假定在一棵二叉樹中,度為2的結(jié)點(diǎn)數(shù)為15,度為1的結(jié)點(diǎn)數(shù)為30,則葉子結(jié)點(diǎn)數(shù)為()個(gè)。 A.15 B.16 C.17 D.4718、用順序存儲(chǔ)的方法,將完全二叉樹中所有結(jié)點(diǎn)按層逐個(gè)從左到右的順序存放在一維數(shù)組R[1..n]中,若結(jié)點(diǎn)R[i]有左孩子,則其左孩子是()。A.R[2i-1] B.R[2i+1] C.R[2i] D.R[2/i]20、樹的先根序列等同于與該樹對(duì)應(yīng)的二叉樹的()。A.先序序列B.中序序列 C.后序序列D.層序序列 21、按照二叉樹的定義,具有3個(gè)結(jié)點(diǎn)的二叉樹有(C)種。A.3 B.4 C.5 D.622、由權(quán)值為3,6,7,2,5的葉子結(jié)點(diǎn)生成一棵哈夫曼樹,它的帶權(quán)路徑長(zhǎng)度為(A)。A.51 B.23 C.53 D.74二、判斷題(對(duì))1、存在這樣的二叉樹,對(duì)它采用任何次序的遍歷,結(jié)果相同。(對(duì))2、中序遍歷一棵二叉排序樹的結(jié)點(diǎn),可得到排好序的結(jié)點(diǎn)序列。(√)3、一個(gè)含有n個(gè)結(jié)點(diǎn)的完全二叉樹,它的高度是log2n+1。(√)4、完全二叉樹的某結(jié)點(diǎn)若無左孩子,則它必是葉結(jié)點(diǎn)。(√)5、完全二叉樹某結(jié)點(diǎn)有右子樹,則必然有左子樹。三、填空題1、具有n個(gè)結(jié)點(diǎn)的完全二叉樹的深度是log2n+1。2、哈夫曼樹是其樹的帶權(quán)路徑長(zhǎng)度最小的二叉樹。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(Bitreebt)實(shí)現(xiàn)二叉樹的中序遍歷,請(qǐng)?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。 voidInOrderTraverse(BiTreebt){ if(bt){ InOrderTraverse(bt->lchild); printf(“%c”,bt->data); InOrderTraverse(bt->rchild); } }五、綜合題1、假設(shè)以有序?qū)?lt;p,c>表示從雙親結(jié)點(diǎn)到孩子結(jié)點(diǎn)的一條邊,若已知樹中邊的集合為{<a,b>,<a,d>,<a,c>,<c,e>,<c,f>,<c,g>,<c,h>,<e,i>,<e,j>,<g,k>},請(qǐng)回答下列問題:(1)哪個(gè)結(jié)點(diǎn)是根結(jié)點(diǎn)?a(2)哪些結(jié)點(diǎn)是葉子結(jié)點(diǎn)?b,d,i,j,f,k,h(3)哪些結(jié)點(diǎn)是k的祖先?a,c,g(4)哪些結(jié)點(diǎn)是j的兄弟?i(5)樹的深度是多少?42、假設(shè)一棵二叉樹的先序序列為EBADCFHGIKJ,中序序列為ABCDEFGHIJK,請(qǐng)畫出該二叉樹。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。請(qǐng)為這8個(gè)字母設(shè)計(jì)哈夫曼編碼。答案:4、已知二叉樹的先序遍歷序列為ABCDEFGH,中序遍歷序列為CBEDFAGH,畫出二叉樹。答案:二叉樹形態(tài)5、試用權(quán)集合{12,4,5,6,1,2}構(gòu)造哈夫曼樹,并計(jì)算哈夫曼樹的帶權(quán)路徑長(zhǎng)度。答案:WPL=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。答案:(1)樹形態(tài):(2)帶權(quán)路徑長(zhǎng)度: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ì)一棵哈夫曼樹;(畫出其樹結(jié)構(gòu))(2)計(jì)算其帶權(quán)路徑長(zhǎng)度WPL;答案:(1)樹形態(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、已知某森林的二叉樹如下所示,試畫出它所表示的森林。答案:10、有一分電文共使用5個(gè)字符;a,b,c,d,e,它們的出現(xiàn)頻率依次為4、7、5、2、9,試構(gòu)造哈夫曼樹,并給出每個(gè)字符的哈夫曼編碼。11、畫出與下圖所示的森林相對(duì)應(yīng)的二叉樹,并指出森林中的葉子結(jié)點(diǎn)在二叉樹中具有什么特點(diǎn)。12、如下所示的二叉樹,請(qǐng)寫出先序、中序、后序遍歷的序列。答案:先序:FDBACEGIHJ中序:ABCDEFGHIJ后序:ACBEDHJIGF第七章圖一、選擇題1、對(duì)于具有n個(gè)頂點(diǎn)的圖,若采用鄰接矩陣表示,則該矩陣的大小為()。A.n B.n2 C.n-1 D.(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)的最長(zhǎng)路徑 B.從源點(diǎn)到匯點(diǎn)的最短路徑C.最長(zhǎng)的回路 D.最短的回路4、下面()可以判斷出一個(gè)有向圖中是否有環(huán)(回路)。A.廣度優(yōu)先遍歷 B.拓?fù)渑判駽.求最短路徑 D.求關(guān)鍵路徑5、帶權(quán)有向圖G用鄰接矩陣A存儲(chǔ),則頂點(diǎn)i的入度等于A中()。A.第i行非無窮的元素之和 B.第i列非無窮的元素個(gè)數(shù)之和C.第i行非無窮且非0的元素個(gè)數(shù) D.第i行與第i列非無窮且非0的元素之和6、采用鄰接表存儲(chǔ)的圖,其深度優(yōu)先遍歷類似于二叉樹的()。A.中序遍歷 B.先序遍歷 C.后序遍歷 D.按層次遍歷7、無向圖的鄰接矩陣是一個(gè)()。A.對(duì)稱矩陣 B.零矩陣 C.上三角矩陣 D.對(duì)角矩陣9、鄰接表是圖的一種()。A.順序存儲(chǔ)結(jié)構(gòu)B.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)C.索引存儲(chǔ)結(jié)構(gòu)D.散列存儲(chǔ)結(jié)構(gòu)10、下面有向圖所示的拓?fù)渑判虻慕Y(jié)果序列是()。A.125634 B.516234 C.123456 D.52164312、在有向圖的逆鄰接表中,每個(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是G1的連通分量14、已知一個(gè)有向圖的鄰接矩陣表示,要?jiǎng)h除所有從第i個(gè)結(jié)點(diǎn)發(fā)出的邊,應(yīng)()。A.將鄰接矩陣的第i行刪除 B.將鄰接矩陣的第i行元素全部置為0 C.將鄰接矩陣的第i列刪除 D.將鄰接矩陣的第i列元素全部置為015、任一個(gè)有向圖的拓?fù)湫蛄校ǎ?。A.不存在 B.有一個(gè) C.一定有多個(gè) D.有一個(gè)或多個(gè)16、在一個(gè)有向圖中,所有頂點(diǎn)的入度之和等于所有頂點(diǎn)的出度之和的()倍。A.1/2 B.1 C.2 D.417、下列關(guān)于圖遍歷的說法不正確的是()。A.連通圖的深度優(yōu)先搜索是一個(gè)遞歸過程B.圖的廣度優(yōu)先搜索中鄰接點(diǎn)的尋找具有“先進(jìn)先出”的特征C.非連通圖不能用深度優(yōu)先搜索法D.圖的遍歷要求每一頂點(diǎn)僅被訪問一次18、帶權(quán)有向圖G用鄰接矩陣A存儲(chǔ),則頂點(diǎn)i的入度為A中:()。A.第i行非的元素之和 B.第i列非的元素之和C.第i行非且非0的元素個(gè)數(shù) D.第i列非且非0的元素個(gè)數(shù)19、采用鄰接表存儲(chǔ)的圖的廣度優(yōu)先遍歷算法類似于二叉樹的()。A.先序遍歷 B.中序遍歷 C.后序遍歷 D.按層次遍歷20、一個(gè)具有n個(gè)頂點(diǎn)的有向圖最多有()條邊。A.n×(n-1)/2 B.n×(n-1) C.n×(n+1)/2 D.n221、已知一個(gè)有向圖的鄰接表存儲(chǔ)結(jié)構(gòu)如圖所示,根據(jù)深度優(yōu)先遍歷算法,從頂點(diǎn)v1出發(fā),所得到的頂點(diǎn)序列是()。A.v1,v2,v3,v5,v4 B.v1,v2,v3,v4,v5 C.v1,v3,v4,v5,v2 D.v1,v4,v3,v5,v223、以下說法正確的是()。A.連通分量是無向圖中的極小連通子圖 B.強(qiáng)連通分量是有向圖中的極大強(qiáng)連通子圖 C.在一個(gè)有向圖的拓?fù)湫蛄兄腥繇旤c(diǎn)a在頂點(diǎn)b之前,則圖中必有一條弧<a,b> D.對(duì)有向圖G,如果以任一頂點(diǎn)出發(fā)進(jìn)行一次深度優(yōu)先或廣度優(yōu)先搜索能訪問到每個(gè)頂點(diǎn),則該圖一定是完全圖24、假設(shè)有向圖含n個(gè)頂點(diǎn)及e條弧,則表示該圖的鄰接表中包含的弧結(jié)點(diǎn)個(gè)數(shù)為()。A.n B.e C.2e D.n*e25、設(shè)圖的鄰接矩陣為,則該圖為()。A.有向圖 B.無向圖 C.強(qiáng)連通圖 D.完全圖27、任何一個(gè)無向連通圖的最小生成樹()種。A.只有一棵 B.有一棵或多棵 C.一定有多棵 D.可能不存在29、對(duì)于一個(gè)有向圖,若一個(gè)頂點(diǎn)的入度為k1,、出度為k2,則對(duì)應(yīng)鄰接表中該頂點(diǎn)單鏈表中的結(jié)點(diǎn)數(shù)為()。A.k1 B.k2 C.k1+k2 D.k1-k230、一個(gè)具有8個(gè)頂點(diǎn)的有向圖中,所有頂點(diǎn)的入度之和與所有頂點(diǎn)的出度之和的差等于()。A.16 B.4 C.0 D.231、無向圖中一個(gè)頂點(diǎn)的度是指圖中()。A.通過該頂點(diǎn)的簡(jiǎn)單路徑數(shù) B.與該頂點(diǎn)相鄰接的頂點(diǎn)數(shù) C.與該頂點(diǎn)連通的頂點(diǎn)數(shù) D.通過該頂點(diǎn)的回路數(shù)二、填空題1、n個(gè)頂點(diǎn)的連通圖至少有邊。答案:n-1條2、一個(gè)連通圖的生成樹是一個(gè),它包含圖中所有頂點(diǎn),但只有足以構(gòu)成一棵樹的n-1條邊。答案:極小連通子圖4、遍歷圖的基本方法有深度優(yōu)先搜索和廣度優(yōu)先搜索,其中是一個(gè)遞歸過程。答案:深度優(yōu)先搜索5、在無向圖G的鄰接矩陣A中,若A[i][j]等于1,則A[j][i]等于。答案:16、判定一個(gè)有向圖是否存在回路,可以利用。答案:拓?fù)渑判?、已知一個(gè)圖的鄰接矩陣表示,計(jì)算第i個(gè)結(jié)點(diǎn)的入度的方法是。答案:鄰接矩陣中第i列非0元素的個(gè)數(shù)8、n個(gè)頂點(diǎn)的無向圖最多有邊。答案:n*(n-1)/29、已知一個(gè)圖的鄰接矩陣表示,刪除所有從第i個(gè)結(jié)點(diǎn)出發(fā)的邊的方法是。答案:將鄰接矩陣中第i行所有元素的值置為010、若以鄰接矩陣表示有向圖,則鄰接矩陣上第i行中非零元素的個(gè)數(shù)即為頂點(diǎn)vi的。答案:第i個(gè)結(jié)點(diǎn)的出度三、判斷題1、圖的連通分量是無向圖的極小連通子圖。2、一個(gè)圖的廣度優(yōu)先生成樹是惟一的。3、圖的深度優(yōu)先遍歷序列和廣度優(yōu)先遍歷序列不是惟一的。4、鄰接表只能用于存儲(chǔ)有向圖,而鄰接矩陣則可存儲(chǔ)有向圖和無向圖。5、存儲(chǔ)圖的鄰接矩陣中,鄰接矩陣的大小不但與圖的頂點(diǎn)個(gè)數(shù)有關(guān),而且與圖的邊數(shù)也有關(guān)。7、從源點(diǎn)到終點(diǎn)的最短路徑是唯一的。9、圖的生成樹是惟一的。四、綜合題1、已知圖G的鄰接矩陣如下所示:(1)求從頂點(diǎn)1出發(fā)的廣度優(yōu)先遍歷序列;(2)根據(jù)prim算法,求圖G從頂點(diǎn)1出發(fā)的最小生成樹,要求表示出其每一步生成過程。(用圖或者表的方式均可)。答案:(1)廣度優(yōu)先遍歷序列:1;2,3,4;5;6(2)最小生成樹(prim算法)2、設(shè)一個(gè)無向圖的鄰接矩陣如下圖所示:(1)畫出該圖;(2)畫出從頂點(diǎn)0出發(fā)的深度優(yōu)先生成樹;答案:(1)圖形態(tài)(2)深度優(yōu)先搜索樹3、寫出下圖中全部可能的拓?fù)渑判蛐蛄?。答案?,5,2,3,6,41,5,6,2,3,45,1,2,3,6,45,1,6,2,3,45,6,1,2,3,44、AOE網(wǎng)G如下所示,求關(guān)鍵路徑。(要求標(biāo)明每個(gè)頂點(diǎn)的最早發(fā)生時(shí)間和最遲發(fā)生時(shí)間,每條邊的最早發(fā)生時(shí)間和最遲發(fā)生時(shí)間并畫出關(guān)鍵路徑)答案:(1)頂點(diǎn)的最早發(fā)生時(shí)間和最遲發(fā)生時(shí)間:(3)關(guān)鍵路徑:(2)邊的最早發(fā)生時(shí)間和最遲發(fā)生時(shí)間邊ele==lV0-v100V0-v200V1-v331V1-v433V2-v322V2-v525V3-v566V4-v5665、已知圖G如下所示,根據(jù)Prim算法,構(gòu)造最小生成樹。(要求給出生成過程)答案:prim算法求最小生成樹如下:6、已知有向圖如下所示,請(qǐng)寫出該圖所有的拓?fù)湫蛄?。答案:拓?fù)渑判蛉缦拢簐1,v2,v4,v6,v5,v3,v7,v8v1,v2,v4,v6,v5,v7,v3,v8v1,v2,v6,v4,v5,v3,v7,v8v1,v2,v6,v4,v5,v7,v3,v8v1,v6,v2,v4,v5,v3,v7,v8v1,v6,v2,v4,v5,v7,v3,v87、如下圖所示的AOE網(wǎng),求:(1)求事件的最早開始時(shí)間ve和最遲開始時(shí)間vl,并求邊的最早時(shí)間和最遲時(shí)間;事件123456789VeVl(2)求出關(guān)鍵路徑;答案:(1)求ve和vl(2)關(guān)鍵路徑(1)邊的最早發(fā)生時(shí)間和最遲發(fā)生時(shí)間邊ele==la100a202a303a466a546a658a777a877a9710a101616a1114148、如下所示的有向圖,回答下面問題:(1)該圖是強(qiáng)連通的嗎?若不是,給出強(qiáng)連通分量。(2)請(qǐng)給出圖的鄰接矩陣和鄰接表表示。答案:(1)是強(qiáng)連通圖(2)鄰接矩陣和鄰接表為:9、已知圖G的鄰接矩陣A=,試畫出它所表示的圖G,并根據(jù)Prim算法求出圖的的最小生成樹(給出生成過程)。答案:(1)圖形態(tài):(2)prim算法求最小生成樹:10、如下圖所示的AOV網(wǎng),寫出其中三種拓?fù)渑判蛐蛄小?1、已知圖G如下,根據(jù)克魯斯卡爾算法求圖G的一棵最小生成樹。(要求給出構(gòu)造過程)答案:kruskal算法的最小生成樹第九章查找一、選擇題1、已知一個(gè)有序表為(11,22,33,44,55,66,77,88,99),則折半查找55需要比較(A)次。A.1 B.2 C.3 D.44、在一棵深度為h的具有n個(gè)元素的二叉排序樹中,查找所有元素的最長(zhǎng)查找長(zhǎng)度為()。A.n B.log2n C.(h+1)/2 D.h5、已知表長(zhǎng)為25的哈希表,用除留取余法,按公式H(key)=keyMODp建立哈希表,則p應(yīng)?。ǎ橐?。A.23 B.24 C.25 D.266、設(shè)哈希表長(zhǎng)m=14,哈希函數(shù)H(key)=keyMOD11。表中已有4個(gè)結(jié)點(diǎn):addr(15)=4,addr(38)=5,addr(61)=6,addr(84)=7其余地址為空,如用二次探測(cè)再散列處理沖突,則關(guān)鍵字為49的地址為(D)。A.8 B.3 C.5 D.97、在散列查找中,平均查找長(zhǎng)度主要與(C)有關(guān)。A.散列表長(zhǎng)度 B.散列元素個(gè)數(shù) C.裝填因子 D.處理沖突方法10、一個(gè)待散列的線性表為k={18,25,63,50,42,32,9},散列函數(shù)為H(k)=kMOD9,與18發(fā)生沖突的元素有(B)個(gè)。A.1 B.2 C.3 D.411、在對(duì)查找表的查找過程中,若被查找的數(shù)據(jù)元素不存在,則把該數(shù)據(jù)元素插到集合中,這種方式主要適合于(B)。 A.靜態(tài)查找表 B.動(dòng)態(tài)查找表 C.靜態(tài)查找表和動(dòng)態(tài)查找表 D.兩種表都不適合13、在各種查找方法中,平均查找次數(shù)與結(jié)點(diǎn)個(gè)數(shù)n無關(guān)的查找方法是(C)。A.順序查找B.折半查找 C.哈希查找 D.分塊查找14、下列二叉樹中,不平衡的二叉樹是(C)。15、對(duì)一棵二叉排序樹按(B)遍歷,可得到結(jié)點(diǎn)值從小到大的排列序列。A.先序 B.中序 C.后序 D.層次16、解決散列法中出現(xiàn)的沖突問題常采用的方法是(D)。A.數(shù)字分析法、除余法、平方取中法B.數(shù)字分析法、除余法、線性探測(cè)法C.數(shù)字分析法、線性探測(cè)法、多重散列法D.線性探測(cè)法、多重散列法、鏈地址法17、對(duì)線性表進(jìn)行折半查找時(shí),要求線性表必須(C)。A.以順序方式存儲(chǔ)B.以鏈接方式存儲(chǔ) C.以順序方式存儲(chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排序D.以鏈接方式存儲(chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排序二、填空題2、已知有序表為(12,18,24,35,47,50,62,83,90,115,134),當(dāng)用折半查找90時(shí),需進(jìn)行2次查找可確定成功。3、具有相同函數(shù)值的關(guān)鍵字對(duì)哈希函數(shù)來說稱為同義詞。4、在一棵二叉排序樹上實(shí)施中序遍歷后,其關(guān)鍵字序列是一個(gè)有序表。三、判斷題(×)1、折半查找只適用于有序表,包括有序的順序表和鏈表。(√)2、二叉排序樹的任意一棵子樹中,關(guān)鍵字最小的結(jié)點(diǎn)必?zé)o左孩子,關(guān)鍵字最大的結(jié)點(diǎn)必?zé)o右孩子。(√)4、平衡二叉樹是指左右子樹的高度差的絕對(duì)值不大于1的二叉樹。(√)5、AVL是一棵二叉樹,其樹上任一結(jié)點(diǎn)的平衡因子的絕對(duì)值不大于1。四、綜合題1、選取哈希函數(shù)H(k)=(k)MOD11。用二次探測(cè)再散列處理沖突,試在0-10的散列地址空間中對(duì)關(guān)鍵字序列(22,41,53,46,30,13,01,67)造哈希表,并求等概率情況下查找成功時(shí)的平均查找長(zhǎng)度。答案:(1)表形態(tài):(2)ASL:ASL(7)=(1*5+2*1+3*1)/7=(5+2+3)/7=10/72、設(shè)哈希表HT表長(zhǎng)m為13,哈希函數(shù)為H(k)=kMODm,給定的關(guān)鍵值序列為{19,14,23,10,68,20,84,27,55,11}。試求出用線性探測(cè)法解決沖突時(shí)所構(gòu)造的哈希表,并求出在等概率的情況下查找成功的平均查找長(zhǎng)度ASL。答案:(1)表形態(tài):(2)平均查找長(zhǎng)度:ASL(10)=(1*5+2*4+3*1)/10=1.63、設(shè)散列表容量為7(散列地址空間0..6),給定表(30,36,47,52,34),散列函數(shù)H(K)=Kmod6,采用線性探測(cè)法解決沖突,要求:(1)構(gòu)造散列表;(2)求查找數(shù)34需要比較的次數(shù)。答案:(1)表形態(tài):(2)查找34的比較次數(shù):34、已知下面二叉排序樹的各結(jié)點(diǎn)的值依次為1-9,請(qǐng)標(biāo)出各結(jié)點(diǎn)的值。答案:(說明,圖中61結(jié)點(diǎn)的值應(yīng)該為4)5、若依次輸入序列{62,68,30,61,25,14,53,47,90,84}中的元素,生成一棵二叉排序樹。畫出生成后的二叉排序樹(不需畫出生成過程)。8、根據(jù)一組記錄(56,42,50,64,48)依次插入結(jié)點(diǎn)生成一棵AVL樹(畫出生成過程)。6、設(shè)有一組關(guān)鍵字{19,1,23,14,55,20,84,27,68,11,10,77},采用哈希函數(shù)H(key)=keyMOD13,采用開放地址法的二次探測(cè)再散列方法解決沖突,試在0-18的散列空間中對(duì)關(guān)鍵字序列構(gòu)造哈希表,畫出哈希表,并求其查找成功時(shí)的平均查找長(zhǎng)度。7、已知關(guān)鍵字序列{11,2,13,26,5,18,4,9},設(shè)哈希表表長(zhǎng)為16,哈希函數(shù)H(key)=keyMOD13,處理沖突的方法為線性探測(cè)法,請(qǐng)給出哈希表,并計(jì)算在等概率的條件下的平均查找長(zhǎng)度。8、設(shè)散列表的長(zhǎng)度為m=13,散列函數(shù)為H(k)=kMODm,給定的關(guān)鍵碼序列為19,14,23,1,68,20,84,27,55,11,13,7,試寫出用線性探查法解決沖突時(shí)所構(gòu)造的散列表。答案:表形態(tài):9、依次讀入給定的整數(shù)序列{7,16,4,8,20,9,6,18,5},構(gòu)造一棵二叉排序樹,并計(jì)算在等概率情況下該二叉排序樹的平均查找長(zhǎng)度ASL。(要求給出構(gòu)造過程)10、設(shè)有一組關(guān)鍵字(19,1,23,14,55,20,84,27,68,11,10,77),采用哈希函數(shù)H(key)=key%13,采用二次探測(cè)再散列的方法解決沖突,試在0-18的散列地址空間中對(duì)該關(guān)鍵字序列構(gòu)造哈希表。答案:11、有一組關(guān)鍵字序列{13,16,6,34,32,98,73,1,27},哈希表的表長(zhǎng)為13,哈希函數(shù)為H(key)=keyMOD13,沖突解決的辦法為鏈地址法,請(qǐng)構(gòu)造哈希表(用圖表示)。第十章內(nèi)部排序一、選擇題1、若需要在O(nlog2n)的時(shí)間內(nèi)完成對(duì)數(shù)組的排序,且要求排序是穩(wěn)定的,則可選擇的排序方法是()。A.快速排序 B.堆排序 C.歸并排序 D.直接插入排序2、下列排序方法中()方法是不穩(wěn)定的。A.冒泡排序 B.選擇排序C.堆排序 D.直接插入排序3、一個(gè)序列中有10000個(gè)元素,若只想得到其中前10個(gè)最小元素,則最好采用()方法。A.快速排序 B.堆排序 C.插入排序 D.歸并排序4、一組待排序序列為(46,79,56,38,40,84),需要降序排列,則利用堆排序的方法建立的初始堆為()。A.79,46,56,38,40,80 B.84,79,56,38,40,46 C.84,79,56,46,40,38 D.84,56,79,40,46,385、快速排序方法在()情況下最不利于發(fā)揮其長(zhǎng)處。A.要排序的數(shù)據(jù)量太大 B.要排序的數(shù)據(jù)中有多個(gè)相同值C.要排序的數(shù)據(jù)已基本有序 D.要排序的數(shù)據(jù)個(gè)數(shù)為奇數(shù)6、排序時(shí)掃描待排序記錄序列,順次比較相鄰的兩個(gè)元素的大小,逆序時(shí)就交換位置,這是()排序的基本思想。A.堆排序 B.直接插入排序 C.快速排序 D.冒泡排序7、在任何情況下,時(shí)間復(fù)雜度均為O(nlogn)的不穩(wěn)定的排序方法是()。 A.直接插入 B.快速排序 C.堆排序 D.歸并排序8、如果將所有中國(guó)人按照生日來排序,則使用()算法最快。A.歸并排序 B.希爾排序 C.快速排序 D.基數(shù)排序9、在對(duì)n個(gè)元素的序列進(jìn)行排序時(shí),堆排序所需要的附加存儲(chǔ)空間是()。A.O(log2n) B.O(1) C.O(n) D.O(nlog2n)10、排序方法中,從未排序序列中依次取出元素與已排序序列中的元素進(jìn)行比較,將其放入已排序序列的正確位置上的方法,稱為()。A.希爾排序 B.冒泡排序 C.插入排序 D.選擇排序12、用某種排序方法對(duì)線性表(25,84,21,47,15,27,68,35,20)進(jìn)行排序時(shí),元素序列的變化情況如下:⑴25,84,21,47,15,27,68,35,20⑵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.快速排序13、設(shè)有1024個(gè)無序的元素,希望用最快的速度挑選出其中前5個(gè)最大的元素,最好選用()。 A.冒泡排序 B.選擇排序 C.快速排序 D.堆排序15、希爾排序的增量序列必須是()。 A.遞增的 B.遞減的 C.隨機(jī)的 D.非遞減的三、判斷題1、直接選擇排序是一種穩(wěn)定的排序方法。2、快速排序在所有排序方法中最快,而且所需附加空間也最少。3、直接插入排序是不穩(wěn)定的排序方法。4、選擇排序是一種不穩(wěn)定的排序方法。五、綜合題1、寫出用直接插入排序?qū)㈥P(guān)鍵字序列{54,23,89,48,64,50,25,90,34}排序過程的每一趟結(jié)果。答案:初始:54,23,89,48,64,50,25,90,341:(23,54),89,48,64,50,25,90,342:(23,54,89),48,64,50,25,90,343:(23,48,54,89),64,50,25,90,344:(23,48,54,64,89),50,25,90,345:(23,48,50,54,64,89),25,90,346:(23,25,48,50,54,64,89),90,347:(23,25,48,50,54,64,89,90),34 8:(23,25,48,50,54,64,89,90,34)2、設(shè)待排序序列為{10,18,4,3,6,12,1,9,15,8}請(qǐng)寫出希爾排序每一趟的結(jié)果。增量序列為5,3,2,1。答案:初始:10,18,4,3,6,12,1,9,15,8d=5:10,1,4,3,6,12,18,9,15,8d=3:3,1,4,8,6,12,10,9,15,18d=2:3,1,4,8,6,9,10,12,15,18d=1:1,3,4,6,8,9,10,12,15,183、已知關(guān)鍵字序列{418,347,289,110,505,333,984,693,177},按遞減排序,求初始堆(畫出初始堆的狀態(tài))。答案:418,347,289,110,505,333,984,693,1774、有一關(guān)鍵字序列(265,301,751,129,937,863,742,694,076,438),寫出希爾排序的每趟排序結(jié)果。(取增量為5,3,1)答案:初始:265,301,751,129,937,863,742,694,076,438d=5:265,301,694,076,438,863,742,751,129,937d=3:076,301,129,265,438,694,742,751,863,937d=1:076,129,265,301,438,694,742,751,863,9375、對(duì)于直接插入排序,希爾排序,冒泡排序,快速排序,直接選擇排序,堆排序和歸并排序等排序方法,分別寫出:(1)平均時(shí)間復(fù)雜度低于O(n2)的排序方法;(2)所需輔助空間最多的排序方法;答案:(1)希爾、快速、堆、歸并(2)歸并6、對(duì)關(guān)鍵字序列(72,87,61,23,94,16,05,58)進(jìn)行堆排序,使之按關(guān)鍵字遞減次序排列,請(qǐng)寫出排序過程中得到的初始堆和前三趟的序列狀態(tài)。答案:第一章概論自測(cè)題答案一、填空題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)。4.線性結(jié)構(gòu)中元素之間存在一對(duì)一關(guān)系,樹形結(jié)構(gòu)中元素之間存在一對(duì)多關(guān)系,圖形結(jié)構(gòu)中元素之間存在多對(duì)多關(guān)系。5.在線性結(jié)構(gòu)中,第一個(gè)結(jié)點(diǎn)沒有前驅(qū)結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有1個(gè)前驅(qū)結(jié)點(diǎn);最后一個(gè)結(jié)點(diǎn)沒有后續(xù)結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有1個(gè)后續(xù)結(jié)點(diǎn)。6.在樹形結(jié)構(gòu)中,樹根結(jié)點(diǎn)沒有前驅(qū)結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有1個(gè)前驅(qū)結(jié)點(diǎn);葉子結(jié)點(diǎn)沒有后續(xù)結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)的后續(xù)結(jié)點(diǎn)數(shù)可以任意多個(gè)。7.在圖形結(jié)構(gòu)中,每個(gè)結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn)數(shù)和后續(xù)結(jié)點(diǎn)數(shù)可以任意多個(gè)。8.?dāng)?shù)據(jù)的存儲(chǔ)結(jié)構(gòu)可用四種基本的存儲(chǔ)方法表示,它們分別是順序、鏈?zhǔn)?、索引和散列?.數(shù)據(jù)的運(yùn)算最常用的有5種,它們分別是插入、刪除、修改、查找、排序。10.一個(gè)算法的效率可分為時(shí)間效率和空間效率。11.任何一個(gè)C程序都由一個(gè)主函數(shù)和若干個(gè)被調(diào)用的其它函數(shù)組成。二、單項(xiàng)選擇題(B)1.非線性結(jié)構(gòu)是數(shù)據(jù)元素之間存在一種:A)一對(duì)多關(guān)系B)多對(duì)多關(guān)系C)多對(duì)一關(guān)系D)一對(duì)一關(guān)系(C)2.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無關(guān)的是數(shù)據(jù)的結(jié)構(gòu);A)存儲(chǔ)B)物理C)邏輯D)物理和存儲(chǔ)(C)3.算法分析的目的是:A)找出數(shù)據(jù)結(jié)構(gòu)的合理性B)研究算法中的輸入和輸出的關(guān)系C)分析算法的效率以求改進(jìn)D)分析算法的易懂性和文檔性(A)4.算法分析的兩個(gè)主要方面是:A)空間復(fù)雜性和時(shí)間復(fù)雜性B)正確性和簡(jiǎn)明性C)可讀性和文檔性D)數(shù)據(jù)復(fù)雜性和程序復(fù)雜性(C)5.計(jì)算機(jī)算法指的是:A)計(jì)算方法B)排序方法C)解決問題的有限運(yùn)算序列D)調(diào)度方法(B)6.計(jì)算機(jī)算法必須具備輸入、輸出和等5個(gè)特性。A)可行性、可移植性和可擴(kuò)充性B)可行性、確定性和有窮性C)確定性、有窮性和穩(wěn)定性D)易讀性、穩(wěn)定性和安全性三、簡(jiǎn)答題1.數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型兩個(gè)概念之間有區(qū)別嗎?答:簡(jiǎn)單地說,數(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)系是一對(duì)一的,非線性結(jié)構(gòu)反映結(jié)點(diǎn)間的邏輯關(guān)系是多對(duì)多的。第2章自測(cè)卷答案一、填空1.在順序表中插入或刪除一個(gè)元素,需要平均移動(dòng)表中一半元素,具體移動(dòng)的元素個(gè)數(shù)與表長(zhǎng)和該元素在表中的位置有關(guān)。2.線性表中結(jié)點(diǎn)的集合是有限的,結(jié)點(diǎn)間的關(guān)系是一對(duì)一的。3.向一個(gè)長(zhǎng)度為n的向量的第i個(gè)元素(1≤i≤n+1)之前插入一個(gè)元素時(shí),需向后移動(dòng)n-i+1個(gè)元素。4.向一個(gè)長(zhǎng)度為n的向量中刪除第i個(gè)元素(1≤i≤n)時(shí),需向前移動(dòng)n-i個(gè)元素。5.在順序表中訪問任意一結(jié)點(diǎn)的時(shí)間復(fù)雜度均為O(1),因此,順序表也稱為隨機(jī)存取的數(shù)據(jù)結(jié)構(gòu)。6.順序表中邏輯上相鄰的元素的物理位置必定相鄰。單鏈表中邏輯上相鄰的元素的物理位置不一定相鄰。7.在單鏈表中,除了首元結(jié)點(diǎn)外,任一結(jié)點(diǎn)的存儲(chǔ)位置由其直接前驅(qū)結(jié)點(diǎn)的鏈域的值指示。8.在n個(gè)結(jié)點(diǎn)的單鏈表中要?jiǎng)h除已知結(jié)點(diǎn)*p,需找到它的前驅(qū)結(jié)點(diǎn)的地址,其時(shí)間復(fù)雜度為O(n)。二、判斷正誤(×)1.鏈表的每個(gè)結(jié)點(diǎn)中都恰好包含一個(gè)指針。答:錯(cuò)誤。鏈表中的結(jié)點(diǎn)可含多個(gè)指針域,分別存放多個(gè)指針。例如,雙向鏈表中的結(jié)點(diǎn)可以含有兩個(gè)指針域,分別存放指向其直接前趨和直接后繼結(jié)點(diǎn)的指針。(×)2.鏈表的物理存儲(chǔ)結(jié)構(gòu)具有同鏈表一樣的順序。錯(cuò),鏈表的存儲(chǔ)結(jié)構(gòu)特點(diǎn)是無序,而鏈表的示意圖有序。(×)3.鏈表的刪除算法很簡(jiǎn)單,因?yàn)楫?dāng)刪除鏈中某個(gè)結(jié)點(diǎn)后,計(jì)算機(jī)會(huì)自動(dòng)地將后續(xù)的各個(gè)單元向前移動(dòng)。錯(cuò),鏈表的結(jié)點(diǎn)不會(huì)移動(dòng),只是指針內(nèi)容改變。(×)4.線性表的每個(gè)結(jié)點(diǎn)只能是一個(gè)簡(jiǎn)單類型,而鏈表的每個(gè)結(jié)點(diǎn)可以是一個(gè)復(fù)雜類型。錯(cuò),混淆了邏輯結(jié)構(gòu)與物理結(jié)構(gòu),鏈表也是線性表!且即使是順序表,也能存放記錄型數(shù)據(jù)。(×)5.順序表結(jié)構(gòu)適宜于進(jìn)行順序存取,而鏈表適宜于進(jìn)行隨機(jī)存取。錯(cuò),正好說反了。順序表才適合隨機(jī)存取,鏈表恰恰適于“順藤摸瓜”(×)6.順序存儲(chǔ)方式的優(yōu)點(diǎn)是存儲(chǔ)密度大,且插入、刪除運(yùn)算效率高。錯(cuò),前一半正確,但后一半說法錯(cuò)誤,那是鏈?zhǔn)酱鎯?chǔ)的優(yōu)點(diǎn)。順序存儲(chǔ)方式插入、刪除運(yùn)算效率較低,在表長(zhǎng)為n的順序表中,插入和刪除一個(gè)數(shù)據(jù)元素,平均需移動(dòng)表長(zhǎng)一半個(gè)數(shù)的數(shù)據(jù)元素。(×)7.線性表在物理存儲(chǔ)空間中也一定是連續(xù)的。錯(cuò),線性表有兩種存儲(chǔ)方式,順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。后者不要求連續(xù)存放。(×)8.線性表在順序存儲(chǔ)時(shí),邏輯上相鄰的元素未必在存儲(chǔ)的物理位置次序上相鄰。錯(cuò)誤。線性表有兩種存儲(chǔ)方式,在順序存儲(chǔ)時(shí),邏輯上相鄰的元素在存儲(chǔ)的物理位置次序上也相鄰。(×)9.順序存儲(chǔ)方式只能用于存儲(chǔ)線性結(jié)構(gòu)。錯(cuò)誤。順序存儲(chǔ)方式不僅能

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論