



版權(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ù)結(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. 棧6、算法是(D)。A. 計(jì)算機(jī)程序B. 解決問(wèn)題的計(jì)算方法C.排序算法D. 解決問(wèn)題的有限運(yùn)算序列7、某算法的語(yǔ)句執(zhí)行頻度為(3n+nlog 2n+n 2 +8 ) ,其時(shí)間復(fù)雜度表示(C)。A. O(n)B.
2、O(nlog 2n)C. O(n 2) D. O(log 2 n)11 、抽象數(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ù)類型二、填空題三、綜合題歡迎下載精選1、將數(shù)量級(jí)O(1),O(N),O(N2 ),O(N 3),O(NLOG 2N),O(LOG 2N),O(2 N)按增長(zhǎng)率由小到大排序。答案:O(1)O(log 2 N)O(N)O(Nlog 2 N)O(N 2)O(N 3 )O(2 N )一、填空題1. 數(shù)據(jù)結(jié)構(gòu)被形式地定義為( D, R ),其中 D 是數(shù)據(jù)元素 的
3、有限集合, 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) 。8 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)可用四種基本的存儲(chǔ)方法表示,它們分別是順序、鏈?zhǔn)?、索引、散列?. 數(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ù)組
4、元?dú)g迎下載精選素。數(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ì)多的。四、分析下面各程序段的時(shí)間復(fù)雜度1.for (i=0;i<n; i+)for (j=0; j<m; j+)Aij=0;2. s=0;for (i=0; i<n; i+)for(j=0; j<n; j+)s+=Bij;sum=s;3.x=0;4.i=1;for(i=1; i<n; i+)while(i<=n)for (j=1; j<=n-i; j
5、+)i=i*3;x+;Mnnnnnlog3n五、設(shè)有數(shù)據(jù)邏輯結(jié)構(gòu)S=( D,R ),試按各小題所給條件畫出這些邏輯結(jié)構(gòu)的圖示,并確定其是哪種邏輯結(jié)構(gòu)。歡迎下載精選1. D=d1,d2,d3,d4R=(d1,d2),(d2,d3),(d3,d4) 2 D=d1,d2, ,d9R=(d1,d2),(d1,d3),(d3,d4),(d3,d6),(d6,d8),(d4,d5), (d6,d7),(d8,d9) 3 D=d1,d2, ,d9R=(d1,d3),(d1,d8),(d2,d3),(d2,d4),(d2,d5),(d3,d9), (d5,d6),(d8,d9),(d9,d7),(d4,d7)
6、,(d4,d6)第二章 線性表一、選擇題1、若長(zhǎng)度為n 的線性表采用順序存儲(chǔ)結(jié)構(gòu),在其第i 個(gè)位置插入一個(gè)新元素算法的時(shí)間復(fù)雜度()。A. O(log 2n)B.O(1)C. O(n)D.O(n 2)2、若一個(gè)線性表中最常用的操作是取第i 個(gè)元素和找第i 個(gè)元素的前趨元素,則采用()存儲(chǔ)方式最節(jié)省時(shí)間。A. 順序表B. 單鏈表C.雙鏈表D. 單循環(huán)鏈表7、在雙向循環(huán)鏈表中,在p 指針?biāo)傅慕Y(jié)點(diǎn)后插入一個(gè)指針q所指向的新結(jié)點(diǎn),修改指針的操作是( c)。A. p->next=q;q->prior=p;p->next->prior=q;q->next=q;歡迎下載精選B
7、. p->next=q;p->next->prior=q;q->prior=p;q->next=p->next;C. q->prior=p;q->next=p->next;p->next->prior=q;p->next=q;D. q->next=p->next;q->prior=p;p->next=q;p->next=q;10 、線性表是 n 個(gè)()的有限序列。A. 表元素B. 字符C. 數(shù)據(jù)元素D. 數(shù)據(jù)項(xiàng)11 、從表中任一結(jié)點(diǎn)出發(fā),都能掃描整個(gè)表的是()。A. 單鏈表B. 順序表C. 循
8、環(huán)鏈表D. 靜態(tài)鏈表12 、在具有 n 個(gè)結(jié)點(diǎn)的單鏈表上查找值為x的元素時(shí),其時(shí)間復(fù)雜度為()。A. O(n)B. O(1)C. O(n 2) D. O(n-1)15 、在線性表的下列存儲(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;17 、
9、將長(zhǎng)度為 n 的單鏈表連接在長(zhǎng)度為m的單鏈表之后的算法的時(shí)間復(fù)雜度為()。A. O(1)B. O(n)C. O(m)D. O(m+n)18 、線性表的順序存儲(chǔ)結(jié)構(gòu)是一種(a)存儲(chǔ)結(jié)構(gòu)。NA. 隨機(jī)存取B. 順序存取C. 索引存取D. 散列存取19 、順序表中,插入一個(gè)元素所需移動(dòng)的元素平均數(shù)是()。A. (n-1)/2B. nC. n+1D. (n+1)/2歡迎下載精選11、不帶頭結(jié)點(diǎn)的單鏈表head 為空的判定條件是(b)。A. head=NULLB. head->next=NULLC. head->next=headD. head!=NULL12、在下列對(duì)順序表進(jìn)行的操作中,算
10、法時(shí)間復(fù)雜度為O(1) 的是()。A. 訪問(wèn)第 i個(gè)元素的前驅(qū)( 1< in )B. 在 第 i 個(gè) 元 素 之 后 插 入 一 個(gè) 新 元 素( 1i n )C.刪除第 i個(gè)元素 ( 1i n )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í)行的語(yǔ)句為(a)。A. q->next=s->next;s->next=p ;B. s->next=p ; q->next=s->next;C. p->next=s->next;
11、 s->next=q ;D. s->next=q ; p->next=s->next;15 、在表長(zhǎng)為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->next=p->nextp->next=q3、寫出帶頭結(jié)點(diǎn)的雙向循環(huán)鏈表L 為空表的條件。答案: L->prior=L-&
12、gt;next=L歡迎下載精選5、在一個(gè)單鏈表中刪除p 所指結(jié)點(diǎn)的后繼結(jié)點(diǎn)時(shí),應(yīng)執(zhí)行以下操作:q= p->next;p->next=_q->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)LinkL
13、ist p ; int j ;p=L->next;j=1;while(p&&j<i)p=p->next ;+j;if(!p|j>i)return ERROR;*e= p->data ;return OK;歡迎下載精選2、函數(shù)實(shí)現(xiàn)單鏈表的插入算法,請(qǐng)?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。int ListInsert(LinkList L,int i,ElemType e)LNode *p,*s;int j;p=L;j=0;while(p!=NULL)&&(j<i-1)p=p->next;j+;if(p=NULL|j>i-1) re
14、turn ERROR;s=(LNode *)malloc(sizeof(LNode);s->data=e;s->next=p->next;p->next=s ;return OK;/*ListInsert*/3、函數(shù) ListDelete_sq 實(shí)現(xiàn)順序表刪除算法,請(qǐng)?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。int ListDelete_sq(Sqlist *L,int i)int k;if(i<1|i>L->length) return ERROR;for(k=i-1;k<L->length-1;k+)L->slistk= L->slistk+
15、1;-L->Length ;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)&&(j<i-1)p=p->next;j+;if(p->next=NULL|j>i-1) return ERROR;q=p->next;p->next=q->next;*s=q->data;free(q);return OK;/
16、*listDelete*/5、寫出算法的功能。int L(head)node * head;int n=0;node *p;p=head;歡迎下載精選while(p!=NULL) p=p->next;n+;return(n);答案:求單鏈表head 的長(zhǎng)度五、綜合題1、編寫算法,實(shí)現(xiàn)帶頭結(jié)點(diǎn)單鏈表的逆置算法。答案: void invent(Lnode *head)Lnode *p,*q;if(!head->next) return ERROR;p=head->next; q=p->next; p->next =NULL;while(q)p=q; q=q->n
17、ext; p->next=head->next; head->next=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->next!=L1)p=p->next;歡迎下載精選while(q->next!=L2)q=q->next;q->next=L1; p->next =L2;3、設(shè)一個(gè)帶頭結(jié)點(diǎn)的單向鏈表的頭指針為head ,設(shè)計(jì)算法,將鏈表的記錄,
18、按照data 域的值遞增排序。答案: void assending(Lnode *head)Lnode *p,*q , *r, *s;p=head->next; q=p->next; p->next=NULL;while(q)r=q; q=q->next;if(r->data<=p->data)r->next=p; head->next=r; p=r; elsewhile(!p && r->data>p->data)s=p; p=p->next; r->next=p; s->next=r;
19、p=head->next; 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->next!=NULL)p=p->next;p->next=head;設(shè)單鏈表的長(zhǎng)度 (數(shù)據(jù)結(jié)點(diǎn)數(shù)) 為 N ,則該算法的時(shí)間主要花費(fèi)在查找鏈表最后一個(gè)結(jié)點(diǎn)上(算法中的 while 循環(huán)),所以該算法的時(shí)間復(fù)雜度為O(N)。5 、已知 head 為帶頭結(jié)點(diǎn)的單循環(huán)鏈表的頭指針,
20、鏈表中的數(shù)據(jù)元素依次為(a1 ,a2,a3,a4, ,an ) ,A 為指向空的順序表的指針。閱讀以下程序段,并回答問(wèn)題:( 1 )寫出執(zhí)行下列程序段后的順序表A 中的數(shù)據(jù)元素;( 2 )簡(jiǎn)要敘述該程序段的功能。if(head->next!=head)p=head->next;A->length=0;while(p->next!=head)p=p->next;A->dataA->length +=p->data;if(p->next!=head)p=p->next;歡迎下載精選答案:(1)(a2, a4, , )(2) 將循環(huán)單鏈表中
21、偶數(shù)結(jié)點(diǎn)位置的元素值寫入順序表A6、設(shè)順序表va 中的數(shù)據(jù)元數(shù)遞增有序。試寫一算法,將x 插入到順序表的適當(dāng)位置上,以保持該表的有序性。答案:void Insert_sq(Sqlist va, ElemType x)int i, j, n;n=length(va);if(x>=vai)van=x;elsei=0;while(x>vai) i+;for(j=n-1;j>=I;j-)vaj+1=vaj;vai=x; n+;7 、 假 設(shè) 線 性 表 采 用 順 序 存 儲(chǔ) 結(jié) 構(gòu) , 表 中 元 素 值 為 整 型 。 閱 讀 算 法 f2 , 設(shè) 順 序 表L=(3,7,3,2
22、,1,1,8,7,3),寫出執(zhí)行算法f2后的線性表 L的數(shù)據(jù)元素,并描述該算法的功能。歡迎下載精選void f2(SeqList *L)int i,j,k;k=0;for(i=0;i<L->length;i+)for(j=0;j<k && L->datai!=L->dataj;j+);if(j=k)if(k!=i)L->datak=L->datai;k+;L->length=k;答案:(3,7,2,1,8)刪除順序表中重復(fù)的元素8、已知線性表中的元素以值遞增有序排列,并以單鏈表作存儲(chǔ)結(jié)構(gòu)。試寫一算法,刪除表中所有大于x 且小于 y
23、 的元素(若表中存在這樣的元素)同時(shí)釋放被刪除結(jié)點(diǎn)空間。答案:void Delete_list(Lnode *head, ElemType x, ElemType y)Lnode *p, *q;if(!head) return ERROR;歡迎下載精選p=head; q=p;while(!p)if(p->data>x) && (p->data<y)i+;if(p=head)head=p->next; free(p);p=head; q=p; elseq->next=p->next; free(p);p=q->next; elseq
24、=p; p=p->next; 9、在帶頭結(jié)點(diǎn)的循環(huán)鏈表L 中,結(jié)點(diǎn)的數(shù)據(jù)元素為整型,且按值遞增有序存放。給定兩個(gè)整數(shù) a 和 b ,且 a<b ,編寫算法刪除鏈表L 中元素值大于a 且小于 b 的所有結(jié)點(diǎn)。第三章棧和隊(duì)列一、選擇題2、判斷一個(gè)循環(huán)隊(duì)列Q(最多 n個(gè)元素)為滿的條件是(c)。歡迎下載精選A. Q->rear=Q->frontB. Q->rear=Q->front+1C. Q->front=(Q->rear+1)%nD. Q->front=(Q->rear-1)%n3、設(shè)計(jì)一個(gè)判別表達(dá)式中括號(hào)是否配對(duì)的算法,采用()數(shù)據(jù)結(jié)
25、構(gòu)最佳。A. 順序表B. 鏈表C. 隊(duì)列D. 棧4、帶頭結(jié)點(diǎn)的單鏈表head 為空的判定條件是() 。A. head=NULLB. head->next=NULLC. head->next!=NULL D. head!=NULL5、一個(gè)棧的輸入序列為:1,2,3,4 ,則棧的不可能輸出的序列是()。A. 1243B. 2134C. 1432 D. 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.
26、5和17、隊(duì)列的插入操作是在()。A. 隊(duì)尾B. 隊(duì)頭C. 隊(duì)列任意位置D. 隊(duì)頭元素后8、循環(huán)隊(duì)列的隊(duì)頭和隊(duì)尾指針?lè)謩e為front 和 rear ,則判斷循環(huán)隊(duì)列為空的條件是()。A. front=rearB. front=0C. rear=0D. 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.
27、abc+*d-C. abc*+d-D. -+*abcd歡迎下載精選11 、將遞歸算法轉(zhuǎn)換成對(duì)應(yīng)的非遞歸算法時(shí),通常需要使用()來(lái)保存中間結(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,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->
28、top=nD. S->top!=n15、在一個(gè)鏈隊(duì)列中,front 和 rear 分別為頭指針和尾指針,則插入一個(gè)結(jié)點(diǎn)s的操作為() 。A. front=front->nextB. 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,4B. 4 ,3,2,1C. 1 ,4, 3,2D. 3 ,4,1,217 、依次在初始為空的隊(duì)列中插入元素a,b,c,d 以后,緊接著做了兩次刪除操作,此
29、時(shí)的隊(duì)頭元素是()。A. aB. bC. cD. d18、正常情況下,刪除非空的順序存儲(chǔ)結(jié)構(gòu)的堆棧的棧頂元素,棧頂指針top 的變化是() 。A. top 不變B. top=0C. top=top+1 D. top=top-119、判斷一個(gè)循環(huán)隊(duì)列Q(空間大小為M)為空的條件是() 。歡迎下載精選A. Q->front=Q->rearB. Q->rear-Q->front-1=MC. Q->front+1=Q->rearD. Q->rear+1=Q->front20 、設(shè)計(jì)一個(gè)判別表達(dá)式中左右括號(hào)是否配對(duì)出現(xiàn)的算法,采用()數(shù)據(jù)結(jié)構(gòu)最佳。A. 線
30、性表的順序存儲(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-1D. N-222 、隊(duì)列的刪除操作是在()。A. 隊(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 和 rear ,則當(dāng)前隊(duì)列中的元素個(gè)數(shù)是()。A. (rear-front+m)%mB. rear-front+1C. rear
31、-front-1D. rear-front25 、在解決計(jì)算機(jī)主機(jī)和打印機(jī)之間速度不匹配問(wèn)題時(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. 限制存取點(diǎn)的線性結(jié)構(gòu)D. 限制存取點(diǎn)的非線性結(jié)構(gòu)27 、在一個(gè)鏈隊(duì)列中,假定front 和 rear 分別為隊(duì)頭指針和隊(duì)尾指針,刪除一個(gè)結(jié)點(diǎn)的操作是歡迎下載精選()。A. front=front->nextB. rear= rear->n
32、extC. rear->next=frontD. 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依次通過(guò)棧 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ì)尾指針?lè)謩e為front 和 rear ,則循環(huán)隊(duì)列中元素的個(gè)數(shù)為: 。答案: (rear-front+M
33、)%M3、在具有 n 個(gè)元素的循環(huán)隊(duì)列中,隊(duì)滿時(shí)具有個(gè)元素。答案: n-14、設(shè)循環(huán)隊(duì)列的容量為70 ,現(xiàn)經(jīng)過(guò)一系列的入隊(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)度為_。三、判斷題歡迎下載精選1、棧和隊(duì)列都是受限的線性結(jié)構(gòu)。2、在單鏈表中,要訪問(wèn)某個(gè)結(jié)點(diǎn),只要知道該結(jié)點(diǎn)的地址即可;因此,單鏈表是一種隨機(jī)存取結(jié)構(gòu)。3、以鏈表作為棧的存儲(chǔ)結(jié)構(gòu),出棧操作必須判別??盏那闆r。四、程序分析填空題1、已知棧的基本操作函數(shù):int InitStack(S
34、qStack *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ù),請(qǐng)將函數(shù)補(bǔ)充完整。void conversion()InitStack(S);scanf( “%d ”,&N);while(N)( 1 ) ; N=N/8;while( ( 2) )Pop(S,&e);歡迎下載精選printf( “%d ”,e);/conversion答案:( 1) Pu
35、sh(S,N%8)( 2) !StackEmpty(S)2、寫出算法的功能。intfunction(SqQueue *Q,ElemType *e)if(Q->front=Q->rear)return ERROR;*e=Q->baseQ->front;Q->front=(Q->front+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的功能。voidf2(Queue *Q)DataTypee;if (!Queu
36、eEmpty(Q)e=DeQueue(Q);f2(Q);EnQueue(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 EnQueue(Lnode *rear, ElemType e) Lnode *new;New=(Lnode *)malloc(sizeof(Lnode);If(!new) return ERROR;new->data=e; new->next=rear->next;rear
37、->next=new; rear =new;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);元素 e 入隊(duì)ElemType deQueue(
38、Queue q);出隊(duì),返回隊(duì)頭元素int isEmpty(Queue q);判斷隊(duì)空答案: void QueueInvent(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);enQueue(Queue q, ElemType x);3、對(duì)于一個(gè)棧,給出輸入項(xiàng)A,B,C,D ,如果輸入項(xiàng)序列為A,B,C,D ,試給出全部可能的輸出序列。答案
39、:出棧的可能序列:ABCDABDCACDBACBDADCBBACDBADCBCADBCDACBDACBADCDBADCBA第五章數(shù)組和廣義表歡迎下載精選一、選擇題1、設(shè)廣義表 L=(a , b, c) ,則 L的長(zhǎng)度和深度分別為(C )。A.1和1B.1和3C.1和2D.2和32、廣義表 (a),a) 的表尾是( B )。A. aB. (a)C. ()D. (a)3、稀疏矩陣的常見(jiàn)壓縮存儲(chǔ)方法有(C)兩種。A. 二維數(shù)組和三維數(shù)組B. 三元組和散列表C. 三元組和十字鏈表D. 散列表和十字鏈表4、一個(gè)非空廣義表的表頭(D )。A. 不可能是子表B. 只能是子表C. 只能是原子D. 可 以 是
40、子表或原子5 、數(shù)組 A0.5,0.6 的每個(gè)元素占5 個(gè)字節(jié),將其按列優(yōu)先次序存儲(chǔ)在起始地址為1000 的內(nèi)存單元中,則元素A55 的地址是( A)。A. 1175B. 1180C. 1205D. 12106、廣義表 G=(a,b(c,d,(e,f),g) 的長(zhǎng)度是(A )。A.3B.4C.7D.87、采用稀疏矩陣的三元組表形式進(jìn)行壓縮存儲(chǔ),若要完成對(duì)三元組表進(jìn)行轉(zhuǎn)置,只要將行和列對(duì)換,這種說(shuō)法(B )。A. 正確B. 錯(cuò)誤C. 無(wú)法確定D. 以上均不對(duì)8、廣義表 (a,b,c) 的表尾是(B)。A. b,cB. (b,c)C. cD. (c)9、常對(duì)數(shù)組進(jìn)行兩種基本操作是(C )。歡迎下載
41、精選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. 13B. 33C. 18D. 4012 、設(shè)矩陣 A 是一個(gè)對(duì)稱矩陣,為了節(jié)省存儲(chǔ),將其下三角部分按行序存放在一維數(shù)組B1,n(n-1)/2 中,對(duì)下三角部分中任一元素ai,j(i>=j)
42、,在一維數(shù)組 B的下標(biāo)位置 k的值是( 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. bD. (a)14 、稀疏矩陣一般的壓縮存儲(chǔ)方法有兩種,即(C )。A. 二維數(shù)組和三維數(shù)組B. 三元組和散列C. 三元組和十字鏈表D. 散列和十字鏈表15 、假設(shè)以三元組表表示稀疏矩陣,則與如圖所示三元組表對(duì)應(yīng)的4 ×5 的稀疏矩陣是 (注:矩陣的行列下標(biāo)均從1 開始)( B )。08060080607000070003A.0000B.0400055040000000歡迎下載精選08060080600000370000C.0000D.040375504000000016 、以下有關(guān)廣義表的表述中,正確的是(A)。A. 由 0 個(gè)或多個(gè)原子或
溫馨提示
- 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年北京考貨運(yùn)資格證考試內(nèi)容
- 產(chǎn)品技術(shù)服務(wù)合同
- 信貸業(yè)務(wù)審批流程詳述
- 全新顧問(wèn)聘用協(xié)議
- 《數(shù)據(jù)可視化技術(shù)應(yīng)用》2.2 揭示商品庫(kù)存數(shù)據(jù)動(dòng)態(tài)-教案
- 2025年遼陽(yáng)道路貨運(yùn)駕駛員從業(yè)資格證考試
- 營(yíng)林生產(chǎn)松林擇間伐改造提升承攬合同6篇
- 《藥物分析》課程標(biāo)準(zhǔn)
- 駕校合伙投資合同范本
- 單位食堂聘用合同范本
- 人教版(2025新版)七年級(jí)下冊(cè)數(shù)學(xué)第七章 相交線與平行線 單元測(cè)試卷(含答案)
- 高職英語(yǔ)課程說(shuō)課稿課件
- 大班綜合《要是你給老鼠玩手機(jī)》課件
- DB37-T 5026-2022《居住建筑節(jié)能設(shè)計(jì)標(biāo)準(zhǔn)》
- DN900鋼管dn800E管定向鉆穿越京杭大運(yùn)河施工方案
- 全套IECQ QC080000-2017 有害物質(zhì)過(guò)程管理體系程序文件
- 冀教版三年級(jí)數(shù)學(xué)下冊(cè)《第二單元第2課時(shí) 兩位數(shù)乘兩位數(shù)(進(jìn)位)的乘法》教學(xué)課件PPT小學(xué)公開課
- 成都市入戶申請(qǐng)表
- 主題班會(huì):預(yù)防流行性感冒課件
- 對(duì)外援助成套項(xiàng)目管理辦法(試行)
- 管道吹掃、試壓檢驗(yàn)批質(zhì)量驗(yàn)收記錄表
評(píng)論
0/150
提交評(píng)論