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

下載本文檔

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

文檔簡介

1、數(shù)據(jù)結(jié)構(gòu)習題集(自編)第一章 緒論一、選擇題1數(shù)據(jù)結(jié)構(gòu)是一門研究非數(shù)值計算的程序設(shè)計問題中的操作對象以及它們之間的()和運算的學科。 A結(jié)構(gòu) B關(guān)系 C運算 D算法2在數(shù)據(jù)結(jié)構(gòu)中,從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分成()。A動態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu) B緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C線性結(jié)構(gòu)和非線性結(jié)構(gòu) D邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)3線性表的邏輯順序和存儲順序總是一致的,這種說法()。 A正確 B不正確 C無法確定 D以上答案都不對4算法分析的目的是()。A找出算法的合理性 B研究算法的輸人與輸出關(guān)系C分析算法的有效性以求改進 D分析算法的易懂性5. 算法的時間復(fù)雜度取決于( )A問題的規(guī)模B待處理數(shù)據(jù)的初態(tài) C. A和B6一

2、個算法應(yīng)該是( )。A程序 B問題求解步驟的描述 C要滿足五個基本特性 DA和C. 7. 下面關(guān)于算法說法錯誤的是( )A算法最終必須由計算機程序?qū)崿F(xiàn)B.為解決某問題的算法與為該問題編寫的程序含義是相同的C. 算法的可行性是指指令不能有二義性 D. 以上幾個都是錯誤的8以下與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)的術(shù)語是( )。A循環(huán)隊列 B. 鏈表 C. 哈希表 D. 棧9在下面的程序段中,對x的賦值語句的頻度為( )for(i=0;i<n;i+) for(j=0;j<n;j+) x=x+1;A 2n Bn Cn2 Dlog2n 10以下數(shù)據(jù)結(jié)構(gòu)中,( )是非線性數(shù)據(jù)結(jié)構(gòu)A樹 B字符串 C隊列 D棧

3、11. 下列數(shù)據(jù)中,( )是線性數(shù)據(jù)結(jié)構(gòu)。A哈夫曼樹 B.有向無環(huán)圖 C. 二叉排序樹 D. 棧12以下屬于邏輯結(jié)構(gòu)的是( )。A順序表 B. 哈希表 C.有序表 D. 單鏈表二、填空題1、_是信息的載體,是對客觀事物的符號表示,它能夠被計算機識別、存儲、加工和處理,_是對能夠有效的輸人到計算機中并且能夠被計算機處理的符號的總稱。(數(shù)據(jù)、數(shù)據(jù)) 2、數(shù)據(jù)元素是數(shù)據(jù)的_,有些情況下也稱為元素、結(jié)點、頂點、記錄等。(基本單位)3、_是數(shù)據(jù)不可分割的最小單元,是具有獨立含義的最小標識單位。例如構(gòu)成一個數(shù)據(jù)元素的字段、域、屬性等都可稱之為_。(數(shù)據(jù)項、數(shù)據(jù)項) 4、數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)之間的_。邏輯

4、結(jié)構(gòu)是從_上描述數(shù)據(jù),它與具體存儲無關(guān),是獨立于計算機的。因此邏輯結(jié)構(gòu)可以看作是從具體問題抽象出來的_。(邏輯關(guān)系、邏輯關(guān)系、數(shù)學模型) 5、數(shù)據(jù)的_指數(shù)據(jù)元素及其關(guān)系在計算機存儲器內(nèi)的表示。_是邏輯結(jié)構(gòu)在計算機里的實現(xiàn),也稱之為映像。(存儲結(jié)構(gòu)、存儲結(jié)構(gòu)) 6、數(shù)據(jù)邏輯結(jié)構(gòu)可以分為四種基本的類型,_結(jié)構(gòu)中的元素除了僅僅只是同屬于一個_,不存在什么關(guān)系。(集合、集合) 7、數(shù)據(jù)邏輯結(jié)構(gòu)的四種基本類型中,_中的元素是一種一對一的關(guān)系,這種結(jié)構(gòu)的特征是:若結(jié)構(gòu)是非空集,則有且只有一個開始結(jié)點和一個終端結(jié)點,并且所有結(jié)點最多只能有一個直接前驅(qū)和一個直接后繼。(線性結(jié)構(gòu)) 8、數(shù)據(jù)邏輯結(jié)構(gòu)的四種基本類

5、型中,_中的元素是一種一對多的關(guān)系。(樹形結(jié)構(gòu)) 9、圖型結(jié)構(gòu)或圖狀結(jié)構(gòu)是一種_的關(guān)系。在這種邏輯結(jié)構(gòu)中,所有結(jié)點均可以有多個前驅(qū)和多個后繼。(多對多) 10、有時也可將樹型結(jié)構(gòu)、集合和圖型結(jié)構(gòu)稱為_,這樣數(shù)據(jù)的邏輯結(jié)構(gòu)就可以分為_和_兩大類。(非線性結(jié)構(gòu)、線性結(jié)構(gòu)、非線性機構(gòu)) 11、_方式是指邏輯上相鄰的結(jié)點被存儲到物理上也相鄰的存儲單元中。這種存儲結(jié)構(gòu)只存儲結(jié)點的數(shù)值,不存儲結(jié)點之間的關(guān)系,結(jié)點之間的關(guān)系是通過存儲單元的相鄰關(guān)系隱含的表示出來的。(順序存儲) 12、_方式是種存儲方法,不要求邏輯上相鄰的結(jié)點在物理上也相鄰,即數(shù)據(jù)元素可以存儲在任意的位置上。(鏈式存儲) 13、_方式是利用

6、結(jié)點關(guān)鍵字的值直接計算出該結(jié)點存儲單元地址,然后將結(jié)點按某種方式存人該地址的一種方法。(散列存儲或哈希存儲) 14、所謂算法(Algorithm)是對特定問題求解步驟的一種描述,它是指令的其中每個指令表示一個或多個操作。算法的五個重要特性是_、_、_、_和_。(有限序列、有窮性、確定性、可行性、輸入、輸出)15、算法的_性是指算法必須能夠在執(zhí)行有限個步驟之后結(jié)束,并且每個步驟都必須在有窮的時間內(nèi)完成。(有窮性) 16、算法的_性是指算法中的每一個步驟必須是有明確定義的,不允許有模棱兩可的解釋,也不允許有多義性。并且,在任何條件下,算法只能有惟一的一條執(zhí)行路徑,即只要輸人是相同的就只能得到_的輸

7、出結(jié)果。(確定性、相同) 17、算法的_性又稱為算法的能行性,是指算法中描述的操作是可以通過已經(jīng)實現(xiàn)的基本運算執(zhí)行有限次來實現(xiàn)。(可行性) 18、判斷一個算法的好壞主要以下幾個標準:_、_、_、_。(正確性、可讀性、健壯性、時間效率和空間效率) 19、算法分析是對一種算法所消耗的計算機資源的估算,其中包括計算機_的長短和_的大小。(運行時間、所占據(jù)空間) 20、空間復(fù)雜度(SPace ComPlexity)也是度量一個算法好壞的標準,它所描述的是算法在運行過程中所占用_的大小。(存儲空間)三、判斷題 1順序存儲方式只能用于存儲線性結(jié)構(gòu)。(×) 2數(shù)據(jù)元素是數(shù)據(jù)的最小單位。(×

8、;) 3算法的優(yōu)劣與算法描述語言無關(guān),但與所用計算機有關(guān)。(×) 4健壯的算法不會因非法的輸入數(shù)據(jù)而出現(xiàn)莫名其妙的狀態(tài)。()5數(shù)據(jù)的邏輯結(jié)構(gòu)是指各元素之間的邏輯關(guān)系,是根據(jù)用戶需要而建立的。 6數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)元素、數(shù)據(jù)項在計算機中的映像分別稱為存儲結(jié)構(gòu)、結(jié)點、數(shù)據(jù)域。() 7數(shù)據(jù)的物理結(jié)構(gòu)是指數(shù)據(jù)在計算機中實際的存儲形式。() 8具有存取任一元素的時間相等這一特點的存儲結(jié)構(gòu)稱為隨機存取結(jié)構(gòu)。9算法實際上就是程序,程序也一定是算法。(×)10. 在順序存儲結(jié)構(gòu)中,有時也存儲數(shù)據(jù)結(jié)構(gòu)中元素之間的關(guān)系。(×)11. 順序存儲方式的優(yōu)點是存儲密度大,且插入、刪除運算效率高

9、。(×)12. 數(shù)據(jù)結(jié)構(gòu)的基本操作的設(shè)置的最重要的準則是,實現(xiàn)應(yīng)用程序與存儲結(jié)構(gòu)的獨立。()13. 數(shù)據(jù)的邏輯結(jié)構(gòu)說明數(shù)據(jù)元素之間的順序關(guān)系,它依賴于計算機的儲存結(jié)構(gòu)。 (×)14. 判斷一個算法的好壞主要以下幾個標準:正確性、有窮性、健壯性和可行性。(×)15算法的時間復(fù)雜度T(n)=O(f(n)表示隨問題規(guī)模n的增大,算法執(zhí)行時間的增長率與函數(shù)f(n)的增長率相同。()四、綜合題 1用大O形式表示下面算法的時間復(fù)雜度: for(i=0;im;i十十) for(j=0;jn;j) Aij=i*j; 2寫出下面算法的時間復(fù)雜度: i0; s=0; while(sn

10、) i+; s+=i; 3寫出以下算法的時間復(fù)雜度: for(i0; im; i)for(j0 ; jt; j) cij=0;for(i=0;im;i) for(j=o; j<t; j+) for(k=0;kn;k) cijaik*bkj;4寫出下面算法的時間復(fù)雜度:i=1;while(in) i=i*3;5求下面函數(shù)中各條語句的頻度和算法的時間復(fù)雜度:prime(int n) int i2; while (ni)!=0isqrt(n) ) i+; if(isqrt(n) ) printf(”d is a prime number.n”,n); else printf(”d is not

11、 a prime number.n”,n);1. 該算法的時間復(fù)雜度為:O(m×n)。2. 該算法的時間復(fù)雜度為:O()3. 該算法的時間復(fù)雜度為:O(m×n×t)。4. 該算法的時間復(fù)雜度為:log3(n)。5. 該算法的時間復(fù)雜度為:O()。6將下列函數(shù),按它們在n時的無窮大階數(shù),從小到大排序。 n, n-n3+7n5, nlogn, 2n/2, n3, logn, n1/2+logn, (3/2)n, ,n!, n2+logn從小到大排列為:logn, n1/2+logn, n, nlogn, n2+logn,n3, n-n3+7n5, 2n/2, (3/2

12、)n, n!,第二章 線性表一、選擇題 1在一個長度為n的順序表中刪除第i個元素(0<i<=n)時,需要向前移動( )個元素。 An-i Bn-i+1 Cn-i-1 Di+12從一個具有n個元素的線性表中查找其值等于x的結(jié)點時,在查找成功的情況下,需平均比較( )個元素結(jié)點。 An/2 Bn C(n-1)/2 D(n +1)/2 3對一個具有n個元素的線性表,建立其單鏈表的時間復(fù)雜度為( )。 AO(n) BO(1) CO(n2) DO(long2n) 4線性表采用鏈式存儲時,其地址( )。 A 必須是連續(xù)的 B一定是不連續(xù)的 C部分地址必須連續(xù) D連續(xù)與否均可以 5在一個具有n個

13、結(jié)點的有序單鏈表中插人一個新的結(jié)點,使得鏈表仍然有序,該算法的時間復(fù)雜度是( )。 AO(long2n) BO(l) CO(n2) DO(n)6線性表是( )。 A一個有限序列,可以為空 B一個有限序列,不可以為空 C一個無限序列,可以為空 D一個無限序列,不可以為空7在一個長度為n的順序表中,向第i個位置(0一1n1)插入一個新元素時,需要向后移動( )個元素。 An-i Bn-i1 Cni1 Di18如果某鏈表中最常用的操作是取第i個結(jié)點及其前驅(qū),則采用( )存儲方式最節(jié)省時間。 A單鏈表 B雙向鏈表 C單循環(huán)鏈表 D順序表9一個順序存儲線性表的第一個元素的存儲地址是90,每個元素的長度是

14、2,則第6個元素的存儲地址是()。 A98 B100 C102 D10610在順序存儲的線性表(a1an)中,刪除任意一個結(jié)點所需移動結(jié)點的平均移動次數(shù)為( ) An Bn2 C(n-1)/2 D(nl)/211在線性表的下列存儲結(jié)構(gòu)中,讀取第i個元素花費的時間最少的是()。 A單鏈表 B雙鏈表 C循環(huán)鏈表 D順序表12若某鏈表中最常用的操作為在最后一個結(jié)點之后插入一個結(jié)點和刪除最后一個結(jié)點,則采用()存儲方式最節(jié)省時間。 A雙鏈表 B單鏈表 C單循環(huán)鏈表 D帶頭結(jié)點的雙循環(huán)鏈表13在單鏈表中刪除指針p所指結(jié)點的后繼結(jié)點,則執(zhí)行( )操作。Ap->next=p->next->

15、nextBp->next=p->nextCp=p->next->nextDp=p->next;p->next=p->next->next14在一個單鏈表中,已知q所指結(jié)點是p所指結(jié)點的前驅(qū),若在q和p之間插入s所指的結(jié)點,則執(zhí)行( )操作。As->next=p->next;p->next=s;Bq->next=s;s->next=p;Cp->next=s->next;s->next=p;Dp->next=s;s->next=q;15在單鏈表中附加頭結(jié)點的目的是為了( )。A保證單鏈表中至

16、少有一個節(jié)點B標識單鏈表中首結(jié)點的位置C方便運算的實現(xiàn)D說明單鏈表是線性表的鏈式存儲16循環(huán)單鏈表的主要優(yōu)點是( )。A不再需要頭指針了B從表中任意一個結(jié)點出發(fā)都能掃描到整個鏈表C已知某個結(jié)點的位置后,能夠容易找到它的前驅(qū)D在進行插入、刪除操作時,能更好地保證鏈表不斷開17非空的循環(huán)單鏈表L的尾結(jié)點p滿足( )。Ap->next=NULLBp=NULLCp->next=LDp=L18在雙向循環(huán)鏈表中,在p指針所指向的結(jié)點前插入一個指針q所指向的新結(jié)點,其修改指針的操作是( )。注:雙向鏈表的結(jié)點結(jié)構(gòu)為(prior,data,next)。 供選擇的答案:Ap->prior=q;

17、 q->next=p; p->prior->next=q; q->prior=q;Bp->prior=q; p->prior->next=q; q->next=p; q->prior=p->prior;Cq->next=p;q->prior=p->prior;p->prior->next=q; p->prior=q;Dq->prior=p->prior; q->next=p; p->prior=q;p->prior=q;19在雙向鏈表存儲結(jié)構(gòu)中,刪除p所指的結(jié)點時須修改

18、指針( )。Ap->prior->next=p->next; p->next->prior=p->prior;Bp->prior=p->prior->prior; p->prior->next=p;(刪p的前趨)Cp->next->prior=p; p->next=p->next->next;Dp->next= p->prior->prior; p->prior= p->next->next;二、填空題1線性表(Linear List)是最簡單、最常用的一種數(shù)據(jù)結(jié)

19、構(gòu)。線性表中的元素存在著_的相互關(guān)系。(一對一)2線性表中有且僅有一個開始結(jié)點,表中有且僅有一個終端結(jié)點,除開始結(jié)點外,其他每個元素有且僅有一個_,除終端結(jié)點外,其他每個元素有且僅有一個_。3線性表是n(n>=0)個數(shù)據(jù)元素的_。其中n為數(shù)據(jù)元素的個數(shù),定義為線性表的_。當n為零時的表稱為_。4所謂順序表(Sequential LISt)是線性表的_,它是將線性表中的結(jié)點按其_依次存放在內(nèi)存中一組連續(xù)的存儲單元中,使線性表中相鄰的結(jié)點存放在_的存儲單元中。5單鏈表不要求邏輯上相鄰的存儲單元在物理上也一定要相鄰。它是分配一些_的存儲單元來存儲線性表中的數(shù)據(jù)元素,這些存儲單元可以分散在內(nèi)存中

20、的_的位置上,它們在物理上可以是一片連續(xù)的存儲單元,也可以是_的。因此在表示線性表這種數(shù)據(jù)結(jié)構(gòu)時,必須在存儲線性表元素的同時,也存儲線性表的。6線性表的鏈式存儲結(jié)構(gòu)的每一個結(jié)點(Node)需要包括兩個部分:一部分用來存放元素的數(shù)據(jù)信息,稱為結(jié)點的_;另一部分用來存放元素的指向直接后繼元素的指針(即直接后繼元素的地址信息),稱為_或_。7線性鏈表的邏輯關(guān)系是通過每個結(jié)點指針域中的指針來表示的。其邏輯順序和物理存儲順序不再一致,而是一種_存儲結(jié)構(gòu),又稱為_。8如果將單鏈表最后一個結(jié)點的指針域改為存放鏈表中的頭結(jié)點的地址值,這樣就構(gòu)成了_。9為了能夠快速地查找到線性表元素的直接前驅(qū),可在每一個元素的

21、結(jié)點中再增加一個指向其前驅(qū)的指針域,這樣就構(gòu)成了_。10雙向鏈表某結(jié)點的指針P,它所指向結(jié)點的后繼的前驅(qū)與前驅(qū)的后繼都是p_。11在單鏈表中,刪除指針P所指結(jié)點的后繼結(jié)點的語句是_。12在雙循環(huán)鏈表中,刪除指針P所指結(jié)點的語句序列是P->prior->nextp->next及_。13單鏈表是_的鏈接存儲表示。14可以使用_表示樹形結(jié)構(gòu)。15向一個長度為n的向量的第i個元素(lin+1)之前插人一個元素時,需向后移動_個元素。16刪除一個長度為n的向量的第i個元素(lin)時,需向前移動_個元素。17在單鏈表中,在指針P所指結(jié)點的后面插人一個結(jié)點S的語句序列是_。18在雙循環(huán)鏈

22、表中,在指針P所指結(jié)點前插人指針S所指的結(jié)點,需執(zhí)行語句_。19取出廣義表A(x,(a,b,c,d)中原子c的函數(shù)是_。20在一個具有n個結(jié)點的有序單鏈表中插人一個新結(jié)點并使之仍然有序的時間復(fù)雜度為_。21寫出帶頭結(jié)點的雙向循環(huán)鏈表L為空表的條件_。22線性表、棧和隊列都是_結(jié)構(gòu)。23向棧中插人元素的操作是先移動棧_針,再存人元素。1. 一對一2. 直接前驅(qū)、直接后繼3. 有限序列、長度、空表4. 順序存儲結(jié)構(gòu)、邏輯順序、地址相鄰5. 任意、任意、不連續(xù)、邏輯關(guān)系6. 數(shù)據(jù)域、指針域、鏈域7. 非順序、非順序映像8. 循環(huán)鏈表9. 雙向鏈表10. 所指向的結(jié)點本身11. P->next=

23、p->next->next12. P->next->prior=P->prior13. 線性表14. 雙鏈表15. n-i+116. n-i17. S->next=P->next; P->next=S18. p->prior->next=S; s->prior=p->prior;s->next=p;p->prior=s;19. head(tail(tail(head(tail(head(A)20. O(n)21. (L=L->Next) && (L=L->Prior)22. 線性23

24、. 頂三、判斷題1線性表采用鏈表存儲時,結(jié)點和結(jié)點內(nèi)部的存儲空間可以是不連續(xù)的。(×)2在具有頭結(jié)點的鏈式存儲結(jié)構(gòu)中,頭指針指向鏈表中的第一個數(shù)據(jù)結(jié)點。(×)3順序存儲的線性表不可以隨機存取。(×) 4單鏈表不是一種隨機存取結(jié)構(gòu)。()5順序存儲結(jié)構(gòu)線性表的插入和刪除運算所移動元素的個數(shù)與該元素的位置無關(guān)。(×) 6順序存儲結(jié)構(gòu)是動態(tài)存儲結(jié)構(gòu),鏈式存儲結(jié)構(gòu)是靜態(tài)存儲結(jié)構(gòu)。(×)7線性表的長度是線性表所占用的存儲空間的大小。(×)8雙循環(huán)鏈表中,任意一結(jié)點的后繼指針均指向其邏輯后繼。(×)9線性表的惟一存儲形式是鏈表。(

25、5;) 1. 錯誤:鏈表存儲中,結(jié)點之間可以連續(xù)也可以不連續(xù),但結(jié)點內(nèi)部是連續(xù)的。2. 錯誤:頭指針指向頭結(jié)點而不是數(shù)據(jù)結(jié)點。3. 錯誤:順序存儲的線性表可以隨機存取。4. 正確。5. 錯誤。6. 錯誤:順序存儲結(jié)構(gòu)是靜態(tài)存儲結(jié)構(gòu),鏈式存儲結(jié)構(gòu)是動態(tài)存儲結(jié)構(gòu)。7. 錯誤:先行表的長度是線性表中結(jié)點的個數(shù)。8. 錯誤:注意最后一個結(jié)點。9. 錯誤:也可以有順序存儲的形式。第三章 棧和隊列一、選擇題 l一個棧的序列是:a,b,c,d,e,則棧的不可能輸出的序列是()。Aa,b,c,d,e Bd,e,c,b,a Cd,c,e,a,b De,d,c,b,a 2若一個棧的輸人序列是1,2,3,n,輸出序

26、列的第一個元素是n,則第k個輸出元素是( )。 Ak Bn-k-1 Cn-k+1 D不確定3判定一個棧S(最多有n個元素)為空的條件是( )。 AS->top!0 BS->top= =0 CS->top!=n DS->top= =n4判定一個棧S(最多有n個元素)為滿的條件是( )。 AS->top!=0 BS->top= =0 CS->top!=n DS->top= =n5向一個棧頂指針為top的不帶頭結(jié)點的鏈棧中插人一個*S結(jié)點的時候,應(yīng)當執(zhí)行語句( )。 Atop->next=S; BS->next=top;top=S; CS-

27、>nexttop->next;top->nextS;DS->nexttop;topS->next;6向一個帶頭結(jié)點、棧頂指針為top的鏈棧中插人一個*S結(jié)點的時候,應(yīng)當執(zhí)行語句( )。 Atop->next=S; BS->next=top;top=S; CS->next=top->next;top->next=S; DS->next=top;top=S->next;7判定一個隊列Q(最多有n個元素)為空的條件是( )。 AQ->rear-Q->front= =n BQ->rear-Q->front+

28、1= =n CQ->rear = = Q->front DQ->rear +1= = Q->front8判定一個隊列Q(最多有n個元素)為滿的條件是()。 AQ->rear-Q->front= =n BQ->rear-Q->front+1= =n CQ->rear = = Q->front DQ->rear +1= = Q->front9判定一個循環(huán)隊列Q(最多有n個元素)為空的條件是( )。 AQ->rear = = Q->front BQ->rear = = Q->frontl CQ->f

29、ront= =(Q->rear +1)n DQ->front= =(Q->rear -1)n10判定一個循環(huán)隊列Q(最多有n個元素)為滿的條件是( )。 AQ->rear = = Q->front BQ->rear = = Q->frontl CQ->front= =(Q->rear +1)n DQ->front= =(Q->rear -1)n11在一個鏈隊列中,假定front和rear分別為頭指針和尾指針,則插入一個結(jié)點*S的操作是( )。 Afrontfront->next BS->next=rear;rear=

30、S Crear->next=S;rear=S DS->next=front;frontS12在一個鏈隊列中,假定front和rear分別為頭指針和尾指針,刪除一個結(jié)點的操作是( )。 Afront=front->next Brear=rear->next Crear->next=front Dfront->nextrear 13棧與隊列都是( )。A鏈式存儲的線性結(jié)構(gòu) B鏈式存儲的非線性結(jié)構(gòu)C限制存取點的線性結(jié)構(gòu) D限制存取點的非線性結(jié)構(gòu) 14若進棧序列為l,2,3,4,則( )不可能是一個出棧序列。 A3,2,4,1 Bl,2,3,4 C4,2,3,1 D

31、4,3,2,l 15在解決計算機主機與打印機之間速度不匹配問題時通常設(shè)置一個打印數(shù)據(jù)緩沖區(qū),主機將要輸出的數(shù)據(jù)依次寫人該緩沖區(qū),而打印機則從該緩沖區(qū)中取走數(shù)據(jù)打印。該緩沖區(qū)應(yīng)該是一個( )結(jié)構(gòu)。 A堆棧 B隊列 C數(shù)組 D線性表1. C2. C3. B4. D5. B6. C7. C8. A9. A10. C 11. C12. A13. C14. C15. B二、填空回1棧(stack)是限定在_一端進行插人或刪除操作的線性表。在棧中,允許插人和刪除操作的一端稱為_,而另一端稱為_。不含元素的棧稱為_。2在棧的運算中,棧的插人操作稱為_或_,棧的刪除操作稱為_或_。3根據(jù)棧的定義,每一次進棧的

32、元素都在原_之上,并成為新的_;每一次出棧的元素總是當前的_,因此最后進棧的元素總是_,所以棧也稱為_線性表,簡稱為_表。4棧是一種操作受到限制的線性表,是一種特殊的線性表,因此棧也有_和_兩種存儲結(jié)構(gòu),分別稱為_和_5當棧滿的時候,再進行人棧操作就會產(chǎn)生_,這種情況的溢出稱為_;當??盏臅r候,如果再進行出棧操作,也會_,這種情況下的溢出稱為_。6棧的鏈式存儲結(jié)構(gòu)簡稱為_,是一種_。7人們?nèi)粘S嬎阌玫降谋磉_式都被稱為_,這是由于這種算術(shù)表達式的運算符被置于兩個操作數(shù)中間。8計算機中通常使用_,這是一種將運算符置于兩個操作數(shù)后面的算術(shù)表達式。這種表達式是由波蘭科學家謝維奇提出的,因此又稱為_9隊

33、列(Queue)也是一種_,但它與棧不同,隊列中所有的插人均限定在表的一端進行,而所有的刪除則限定在表的另一端進行。允許插人的一端稱為_,允許刪除的一端稱為_。10隊列的特點是_,因此隊列又被稱為_的線性表,或稱為_表。11隊列的_又稱為_,是用一組地址連續(xù)的存儲單元依次存放隊列中的元素。12由于隊列中的元素經(jīng)常變化,對于隊列的刪除和插人分別在隊頭和隊尾進行,因此需要設(shè)置兩個指針分別指向_和_,這兩個指針又稱為_和_。13循環(huán)順序隊列(Circular Sequence Queue)經(jīng)常簡稱為_,它是將存儲順序隊列的存儲區(qū)域看成是一個首尾相連的一個環(huán),即將隊首和隊尾元素連接起來形成一個環(huán)形表。

34、首尾相連的狀態(tài)是通過數(shù)學上的_來實現(xiàn)的。14在算法或程序中,當一個函數(shù)直接調(diào)用自己或通過一系列語句間接調(diào)用自己的時候,則稱這個函數(shù)為,也稱為_。函數(shù)直接調(diào)用自己,則稱為_;當一個函數(shù)通過另一個函數(shù)來調(diào)用自己則稱為_。15在循環(huán)隊列中規(guī)定:當Q->rear= =Q->front的時候循環(huán)隊列為_, 當(Q->rear+1)MAXSIZEfront的時候循環(huán)隊列為_。16用鏈表方式表示的隊列稱為_。17已知棧的輸人序列為1,2,3,n,輸出序列為a1,a2,an,符合a2= =n的輸出序列共有_。18一個棧的輸人序列是12345,則棧的輸出序列為43512是_(填是否可能)。19

35、一個棧的輸人序列是12345,則棧的輸出序列為12345是_(填是否可能)。20設(shè)sq1maxsize為一個順序存儲的棧,變量top指示棧頂元素的位置,則作入棧操作的條件是_。21設(shè)sq1maxsize為一個順序存儲的棧,變量top指示棧頂元素的位置,如果把棧頂元素彈出并送到X中,則需執(zhí)行語句_。22棧的特性是_。23對棧進行退棧時的操作是先取出元素,后移動_。24設(shè)s1max為一個順序存儲的棧,變量top指示棧頂位置,棧為滿的條件是_。25設(shè)鏈棧的棧頂指針為top,則棧非空的條件是_。26已知循環(huán)隊列用數(shù)組data1.n存儲元素值,用f,r分別作為頭尾指針, 則當前元素個數(shù)為_。27在一個循

36、環(huán)隊列中,隊首指針指向隊首元素的_位置。(前一個或后一個)28隊列中允許進行刪除的一端稱為_。29鏈隊列實際上是一個同時帶有頭指針和尾指針的單鏈表(1n),尾指針指向該單鏈表的第_個元素。30設(shè)雙向鏈表鏈列為lq,lq的頭指針為lq.Front,尾指針為lq.Rear,則隊列為空的條件是_。31從循環(huán)隊列中刪除一個元素,其操作是先取出一個元素,后移動_32隊列中允許進行插入的一端稱為_。1. 表尾、棧頂、棧底、空棧2. 進棧、入棧、退棧、出棧3. 棧頂元素、棧頂元素、棧頂元素、最先出棧、后進先出、LIFO4. 順序、鏈式、順序棧、鏈棧5. 溢出、上溢、溢出、下溢6. 鏈棧、特殊的單鏈表7. 中

37、綴表達式8. 后綴表達式、波蘭式9. 特殊的線性表、隊尾、隊頭10. 先進先出、先進先出、FIFO11. 順序存儲結(jié)構(gòu)、順序隊列12. 隊頭元素、隊尾元素、隊頭指針、隊尾指針13. 循環(huán)隊列、取模運算14. 遞歸函數(shù)、自調(diào)用函數(shù)、直接遞歸調(diào)用、間接遞歸調(diào)用15. 空、滿16. 鏈隊列17. n-118. 不可能的19. 可能的20. top!=maxsize21. x=sqtop; top=top-122. 先進后出23. 棧頂指針24. top=max25. top!=nil26. (n+r-f)mod n27. 前一個28. 隊首29. n30. lq->front=lq->r

38、ear31. 棧頂指針32. 隊尾三、判斷題1棧和隊列都是限制存取點的線性結(jié)構(gòu)。( )2不同的入棧和出棧組合可能得到相同輸出序列。( )3消除遞歸一定要用棧。( )4循環(huán)隊列是順序存儲結(jié)構(gòu)。( )5循環(huán)隊列不會產(chǎn)生溢出。( )6循環(huán)隊列滿的時候rear= =front。( )7在對鏈隊列(帶頭結(jié)點)做出隊操作時不會改變front指針的值。()1. 正確。2. 錯誤:不同的入棧和出棧組合得到不同輸出序列。3. 錯誤:某些情況如尾遞歸可以轉(zhuǎn)換為遞推的形式。4. 正確。5. 錯誤:循環(huán)隊列不會產(chǎn)生假溢出。6. 錯誤。7. 正確。四、綜合題1設(shè)有4個元素A、B、C和D進棧,給出它們所有可能的出棧秩序。

39、可能的出棧序列:(共14個)ABCDABDCACBDACDBADCBBACDBADCBCADBCDABDCACBADCBDACDBADCBA不可能的出棧序列:(共10個)ADBCBDACCABDCADBCDABDABCDACBDBACDBCADCAB習題四一、選擇項l空串與空格串( )。 A相同 B不相同 C可能相同 D無法確定2設(shè)有兩個申S1與S2,求串S2在S1中首次出現(xiàn)位置的運算稱作( )。 A連接 B求子串 C模式匹配 D判子串3串與普通的線性表相比較,它的特殊性體現(xiàn)在( )。 A順序的存儲結(jié)構(gòu) B鏈接的存儲結(jié)構(gòu) C數(shù)據(jù)元素是一個字符 D數(shù)據(jù)元素可以任意4設(shè)有串S=Computer,則

40、其子串的數(shù)目是( )。 A36 B37 C8 D91. B2. C3. C4. B二、境空題1串是由零個或多個字符組成的_。通常記作:s“c1,c2,cn”(n=>0),其中,S稱為_;串中的Ci(1<=i<=n)可以是字母、數(shù)字 字格或其他字符。用雙引號括起來的部分是_即串S的內(nèi)容。2串中字符的個數(shù)稱為串的_。3不含有任何字符的串稱為_,它的長度為_。4由一個或多個空格構(gòu)成的串稱為_,它的長度為_。5串中任意多個連續(xù)字符組成的子序列稱為該串的_;包含_的串稱為主串。6字符在序列中的序號稱為該字符在串中的_。 7兩個字符串相等是指兩個字符串的,也就是說這兩個字符串不僅_,而且

41、對應(yīng)位置上的字符也。 8兩個串的比較實際上是_的比較。兩個串從第一個位置上的字符開始進行比較,當?shù)谝淮纬霈F(xiàn)_大的串為大,若比較過程中出現(xiàn)一個字符串結(jié)束的情況,則另一個串為_。 9串的_就是把串所包含的字符序列,依次存人連續(xù)的存儲單元中去。 10有些計算機系統(tǒng)中為了充分利用存儲空間,允許一個存儲單元可以存放多個字符,串的這種存儲方式是一種_。 11串的_是以存儲單元為存儲單位,一個存儲單元中只存放_。在這種情況下,即使一個存儲單元能存放多個字符,這時候也只存放_。 12串在非緊縮方式下,串長度的存儲是隱式的,_即串的長度。 13一些計算機是以字節(jié)為存取單位,恰好一個字符占用一個字節(jié),自然形成了每

42、個存儲單元存放_的分配方式,這種方式就是一種_。這種方式一般不需要存放_的存儲單元,而需要以程序中各變量值所、的字符為結(jié)束符。 14串的鏈式存儲結(jié)構(gòu)是將存儲區(qū)域分成一系列大小相同的結(jié)點,每個結(jié)點有兩個城:_域和_域。其中_域用于存放數(shù)據(jù),_域用于存放下一個結(jié)點的指針。 15子串定位StrIndex (s,t),也稱為_,是返回串t在s主串中的位置。1. 有限序列、串名、串值2. 長度3. 空串、零4. 空格串、空格的個數(shù)5. 子串、子串6. 位置7. 值相等、長度相等、相等8. ASCII碼、ASCII碼、較大者9. 順序存儲結(jié)構(gòu)10. 緊縮式存儲方式11. 非緊縮存儲方式、一個字符、一個字符

43、12. 串所占用的存儲單元的個數(shù)13. 一個字符、單字節(jié)存儲方式、串長、不包含14. 數(shù)據(jù)、指針、數(shù)據(jù)、指針15. 模式匹配三、判斷回 1子串是主串中字符構(gòu)成的有限序列。(×) 2KMP算法的最大特點是指示主串的指針不需要回溯。( ) 3串中的元素只能是字符。( )4串中的元素只可能是字母。(×)5串是一種特殊的線性表。( )6串中可以包含有空白字符。( )7串的長度不能為零。(×)8兩個串相等必有串長度相同。( )9兩個串相等則各位置上字符必須對應(yīng)相等。( )習題五一、選擇題 l數(shù)組常用的兩種基本操作是( )。A建立與查找 B刪除與查找 C插人與索引 D查找與修改2對稀疏矩陣進行壓縮存儲,常用的兩種方法是( )。A二元組和散列表 B三元組表和十字鏈表 C三角矩陣和對角矩陣 D對角矩陣和十字鏈表3采用稀疏矩陣的三元組表形式進行壓縮存儲,若要完對三元組表進行成轉(zhuǎn)置,只要將行和列對換,這種說法( )。A正確 B錯誤 C 無法確定 D以上均不對4一個廣義表的表頭總是一個廣義表,這種說法( )。 A正確 B錯誤 C無法確定 D以上均不對5一個廣義

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論