數(shù)據(jù)結(jié)構(gòu)(A)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年_第1頁
數(shù)據(jù)結(jié)構(gòu)(A)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年_第2頁
數(shù)據(jù)結(jié)構(gòu)(A)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年_第3頁
數(shù)據(jù)結(jié)構(gòu)(A)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年_第4頁
數(shù)據(jù)結(jié)構(gòu)(A)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)結(jié)構(gòu)(A)學(xué)習(xí)通超星期末考試章節(jié)答案2024年數(shù)據(jù)的運(yùn)算最常用的有5種,它們分別是____。

答案:插入、刪除、修改、查找、排序在圖形結(jié)構(gòu)中,每個(gè)結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn)數(shù)和后續(xù)結(jié)點(diǎn)數(shù)可以____。

答案:任意多個(gè)在線性結(jié)構(gòu)中,第一個(gè)結(jié)點(diǎn)____前驅(qū)結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有____個(gè)前驅(qū)結(jié)點(diǎn);最后一個(gè)結(jié)點(diǎn)____后續(xù)結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有1個(gè)后續(xù)結(jié)點(diǎn)。

答案:沒有;一;沒有數(shù)據(jù)結(jié)構(gòu)按邏輯結(jié)構(gòu)可分為兩大類,它們分別是____和____。

答案:線性結(jié)構(gòu);非線性結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)被形式地定義為(D,R),其中D是____的有限集合,R是D上的____有限集合。

答案:數(shù)據(jù)元素;關(guān)系數(shù)據(jù)結(jié)構(gòu)的四種基本類型中,____的元素是一對多關(guān)系。

答案:樹形結(jié)構(gòu)抽象數(shù)據(jù)類型的三個(gè)組成部分分別為()。

答案:數(shù)據(jù)對象、數(shù)據(jù)關(guān)系和基本操作數(shù)據(jù)結(jié)構(gòu)是一門研究非數(shù)值計(jì)算的程序設(shè)計(jì)問題中計(jì)算機(jī)的數(shù)據(jù)元素以及它們之間的()和運(yùn)算等的學(xué)科。

答案:關(guān)系某算法的語句執(zhí)行頻度為(3n+nlog2n+n2+8),其時(shí)間復(fù)雜度表示()。

答案:O(n2)下面程序段的時(shí)間復(fù)雜度是()。for(i=0;i答案:O(m*n)具有線性結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)是()。

答案:棧研究數(shù)據(jù)結(jié)構(gòu)就是研究()。

答案:數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)及其基本操作下面程序段的時(shí)間復(fù)雜度為()。i=1;while(i<=n)i=i*3;

答案:O(log3n)算法是()。

答案:解決問題的有限運(yùn)算序列計(jì)算機(jī)中的算法指的是解決某一個(gè)問題的有限運(yùn)算序列,它必須具備輸入、輸出、()等5個(gè)特性。

答案:可執(zhí)行性、有窮性和確定性算法分析的兩個(gè)主要方面是()。

答案:空間復(fù)雜度和時(shí)間復(fù)雜度假設(shè)線性表采用順序存儲結(jié)構(gòu),表中元素值為整型。閱讀算法f2,設(shè)順序表L=(3,7,3,2,1,1,8,7,3),寫出執(zhí)行算法f2后的線性表L的數(shù)據(jù)元素,并描述該算法的功能。voidf2(SeqList*L){inti,j,k;k=0;for(i=0;ilength;i++){for(j=0;jdata[i]!=L->data[j];j++);if(j==k){if(k!=i)L->data[k]=L->data[i];k++;}}L->length=k;}

答案:(3,7,2,1,8)刪除順序表中重復(fù)的元素已知線性表中的元素以值遞增有序排列,并以單鏈表作存儲結(jié)構(gòu)。試寫一算法,刪除表中所有大于x且小于y的元素(若表中存在這樣的元素)同時(shí)釋放被刪除結(jié)點(diǎn)空間。

答案:voidDelete_list(Lnode*head,ElemTypex,ElemTypey){Lnode*p,*q;if(!head)returnERROR;p=head;q=p;while(!p){if(p->data>x)&&(p->datanext;free(p);p=head;q=p;}else{q->next=p->next;free(p);p=q->next;}else{q=p;p=p->next;}}}設(shè)順序表va中的數(shù)據(jù)元數(shù)遞增有序。試寫一算法,將x插入到順序表的適當(dāng)位置上,以保持該表的有序性。

答案:voidInsert_sq(Sqlistva[],ElemTypex){inti,j,n;n=length(va[]);if(x>=va[i])va[n]=x;else{i=0;while(x>va[i])i++;for(j=n-1;j>=I;j--)va[j+1]=va[j];va[i]=x;}n++;}【判斷題】在線性表的順序存儲結(jié)構(gòu)中,邏輯上相鄰的兩個(gè)元素但是在物理位置上不一定是相鄰的。答案:

答案:錯(cuò)線性表的邏輯結(jié)構(gòu)是____,其所含元素的個(gè)數(shù)稱為線性表的____。

答案:線性結(jié)構(gòu);長度在表長為n的順序表中,當(dāng)在任何位置刪除一個(gè)元素的概率相同時(shí),刪除一個(gè)元素所需移動(dòng)的平均個(gè)數(shù)為()。

答案:(n-1)/2在下列對順序表進(jìn)行的操作中,算法時(shí)間復(fù)雜度為O(1)的是()。

答案:訪問第i個(gè)元素的前驅(qū)(1<)順序表中,插入一個(gè)元素所需移動(dòng)的元素平均數(shù)是()。

答案:(n+1)/2線性表的順序存儲結(jié)構(gòu)是一種()存儲結(jié)構(gòu)。

答案:隨機(jī)存取一個(gè)順序表的第一個(gè)元素的存儲地址是90,每個(gè)元素的長度為2,則第6個(gè)元素的存儲地址是()。

答案:100線性表L=(a1,a2,……,an),下列說法正確的是()。

答案:除第一個(gè)和最后一個(gè)元素外,其余每個(gè)元素都由一個(gè)且僅有一個(gè)直接前驅(qū)和直接后繼線性表是n個(gè)()的有限序列。

答案:數(shù)據(jù)元素在一個(gè)長度為n的順序表中刪除第i個(gè)元素,需要向前移動(dòng)()個(gè)元素。

答案:n-i在一個(gè)長度為n的順序表中,在第i個(gè)元素之前插入一個(gè)新元素時(shí),需向后移動(dòng)()個(gè)元素。

答案:n-i+1若一個(gè)線性表中最常用的操作是取第i個(gè)元素和找第i個(gè)元素的前趨元素,則采用()存儲方式最節(jié)省時(shí)間。

答案:順序表若長度為n的線性表采用順序存儲結(jié)構(gòu),在其第i個(gè)位置插入一個(gè)新元素算法的時(shí)間復(fù)雜度()。

答案:O(n)簡要敘述該程序段的功能。if(head->next!=head){p=head->next;A->length=0;while(p->next!=head){p=p->next;A->data[A->length++]=p->data;if(p->next!=head)p=p->next;}}

答案:(1)(a2,a4,…,)(2)將循環(huán)單鏈表中偶數(shù)結(jié)點(diǎn)位置的元素值寫入順序表A編寫算法,將一個(gè)頭指針為head不帶頭結(jié)點(diǎn)的單鏈表改造為一個(gè)單向循環(huán)鏈表,并分析算法的時(shí)間復(fù)雜度。

答案:voidlinklist_c(Lnode*head){Lnode*p;p=head;if(!p)returnERROR;while(p->next!=NULL)p=p->next;p->next=head;}設(shè)單鏈表的長度(數(shù)據(jù)結(jié)點(diǎn)數(shù))為N,則該算法的時(shí)間主要花費(fèi)在查找鏈表最后一個(gè)結(jié)點(diǎn)上(算法中的while循環(huán)),所以該算法的時(shí)間復(fù)雜度為O(N)。設(shè)一個(gè)帶頭結(jié)點(diǎn)的單向鏈表的頭指針為head,設(shè)計(jì)算法,將鏈表的記錄,按照data域的值遞增排序。

答案:voidassending(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;}else{while(!p&&r->data>p->data){s=p;p=p->next;}r->next=p;s->next=r;}p=head->next;}}有兩個(gè)循環(huán)鏈表,鏈頭指針分別為L1和L2,要求寫出算法將L2鏈表鏈到L1鏈表之后,且連接后仍保持循環(huán)鏈表形式。

答案:voidmerge(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;}編寫算法,實(shí)現(xiàn)帶頭結(jié)點(diǎn)單鏈表的逆置算法。

答案:voidinvent(Lnode*head){Lnode*p,*q;if(!head->next)returnERROR;p=head->next;q=p->next;p->next=NULL;while(q){p=q;q=q->next;p->next=head->next;head->next=p;}}寫出算法的功能。intL(head){node*head;intn=0;node*p;p=head;while(p!=NULL){p=p->next;n++;}return(n);}

答案:求單鏈表head的長度函數(shù)ListDelete_sq實(shí)現(xiàn)順序表刪除算法,請?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。intListDelete_sq(Sqlist*L,inti){intk;if(i<1||i>L->length)returnERROR;for(k=i-1;klength-1;k++)L->slist[k]=(1);(2);returnOK;}

答案:(1)L->slist[k+1](2)--L->Length在一個(gè)單鏈表中刪除p所指結(jié)點(diǎn)的后繼結(jié)點(diǎn)時(shí),應(yīng)執(zhí)行以下操作:q=p->next;p->next=____;

答案:q->next【判斷題】用循環(huán)單鏈表表示的鏈隊(duì)列中,可以不設(shè)隊(duì)頭指針,僅在隊(duì)尾設(shè)置隊(duì)尾指針。答案:

答案:對【判斷題】在具有頭結(jié)點(diǎn)的單鏈表中,頭指針指向鏈表的第一個(gè)數(shù)據(jù)結(jié)點(diǎn)。答案:

答案:對函數(shù)實(shí)現(xiàn)單鏈表的刪除算法,請?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。intListDelete(LinkListL,inti,ElemType*s){LNode*p,*q;intj;p=L;j=0;while((____)&&(jnext;j++;}if(p->next==NULL||j>i-1)returnERROR;q=p->next;____;*s=q->data;free(q);returnOK;}/*listDelete*/

答案:(1;(2函數(shù)實(shí)現(xiàn)單鏈表的插入算法,請?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。intListInsert(LinkList*L,inti,ElemTypee){

LNode*p,*s;intj;

p=L;

j=0;

while((p!=NULL)&&(jnext;j++;

}

if(p==NULL)returnERROR;

s=newLNode();

s->data=e;

____;

____;

returnOK;}/*ListInsert*/

答案:(1;(2函數(shù)GetElem實(shí)現(xiàn)返回單鏈表的第i個(gè)元素,請?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。

intGetElem(LinkList*L,inti,Elemtypee){

LinkNode*p;

intj;

p=L->next;

j=1;

while(p!=null&&j答案:(1;(2帶頭結(jié)點(diǎn)的單鏈表head為空的條件是____。

答案:head->next==NULL寫出帶頭結(jié)點(diǎn)的雙向循環(huán)鏈表L為空表的條件____。

答案:L->prior==L->next==L設(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=q在頭指針為head且表長大于1的單循環(huán)鏈表中,指針p指向表中某個(gè)結(jié)點(diǎn),若p->next->next==head,則()。

答案:p的直接后繼是尾結(jié)點(diǎn)在單鏈表中,指針p指向元素為x的結(jié)點(diǎn),實(shí)現(xiàn)刪除x的后繼的語句是()。

答案:p->next=p->next->next;在一個(gè)單鏈表中,已知q所指結(jié)點(diǎn)是p所指結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn),若在q和p之間插入一個(gè)結(jié)點(diǎn)s,則執(zhí)行()。

答案:q->next=s;s->next=p;在以下的敘述中,正確的是()。

答案:線性表的鏈表存儲結(jié)構(gòu)適用于頻繁插入/刪除數(shù)據(jù)元素的情況已知指針p和q分別指向某單鏈表中第一個(gè)結(jié)點(diǎn)和最后一個(gè)結(jié)點(diǎn)。假設(shè)指針s指向另一個(gè)單鏈表中某個(gè)結(jié)點(diǎn),則在s所指結(jié)點(diǎn)之后插入上述鏈表應(yīng)執(zhí)行的語句為()。

答案:q->next=s->next;s->next=p;不帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是()。

答案:head->next==NULL循環(huán)鏈表的主要優(yōu)點(diǎn)是()。

答案:在表中任一結(jié)點(diǎn)出發(fā)都能掃描整個(gè)鏈表將長度為n的單鏈表連接在長度為m的單鏈表之后的算法的時(shí)間復(fù)雜度為()。

答案:O(m)在一個(gè)單鏈表中,若刪除p所指向結(jié)點(diǎn)的后續(xù)結(jié)點(diǎn),則執(zhí)行()。

答案:p->next=p->next->next;在線性表的下列存儲結(jié)構(gòu)中,讀取元素花費(fèi)的時(shí)間最少的是()。

答案:順序表在具有n個(gè)結(jié)點(diǎn)的單鏈表上查找值為x的元素時(shí),其時(shí)間復(fù)雜度為()。

答案:O(n)從表中任一結(jié)點(diǎn)出發(fā),都能掃描整個(gè)表的是()。

答案:循環(huán)鏈表在雙向循環(huán)鏈表中,在p指針?biāo)傅慕Y(jié)點(diǎn)后插入一個(gè)指針q所指向的新結(jié)點(diǎn),修改指針的操作是()。

答案:q->prior=p;q->next=p->next;p->next->prior=q;p->next=q;鏈表不具有的特點(diǎn)是()。

答案:可隨機(jī)訪問任一元素非空的循環(huán)單鏈表head的尾結(jié)點(diǎn)p滿足()。

答案:p->next==head已知棧的基本操作函數(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ù),請將函數(shù)補(bǔ)充完整。voidconversion(){

InitStack(S);

cin>>N;

while(N){

____;

N=N/8;}while(____){

Pop(S,&e);

cout<答案:Push(S,N%8;!StackEmpty(S設(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)該是____。

答案:3若讓元素1,2,3依次進(jìn)棧,則出棧次序不可能是()。

答案:3,1,2設(shè)計(jì)一個(gè)判別表達(dá)式中左右括號是否配對出現(xiàn)的算法,采用()數(shù)據(jù)結(jié)構(gòu)最佳。

答案:棧正常情況下,刪除非空的順序存儲結(jié)構(gòu)的堆棧的棧頂元素,棧頂指針top的變化是()。

答案:top=top-1判定一個(gè)順序棧S(棧空間大小為n)為空的條件是()。

答案:S->top==0將遞歸算法轉(zhuǎn)換成對應(yīng)的非遞歸算法時(shí),通常需要使用()來保存中間結(jié)果。

答案:棧一個(gè)順序棧S,其棧頂指針為top,則將元素e入棧的操作是()。

答案:*S->top=e;S->top++;一個(gè)棧的輸入序列為:1,2,3,4,則棧的不可能輸出的序列是()。

答案:4312帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是()。

答案:head->next==NULL設(shè)計(jì)一個(gè)判別表達(dá)式中括號是否配對的算法,采用()數(shù)據(jù)結(jié)構(gòu)最佳。

答案:棧一個(gè)棧的輸入序列為:a,b,c,d,e,則棧的不可能輸出的序列是()。

答案:d,c,e,a,b簡述算法f2的功能。

答案:倒置隊(duì)列(1)設(shè)隊(duì)列Q=(1,3,5,2,4,6)。寫出執(zhí)行算法f2后的隊(duì)列Q;

答案:6,4,2,5,3,1在單鏈表中,要訪問某個(gè)結(jié)點(diǎn),只要知道該結(jié)點(diǎn)的地址即可;因此,單鏈表是一種隨機(jī)存取結(jié)構(gòu)。答案:

答案:錯(cuò)棧和隊(duì)列都是受限的線性結(jié)構(gòu)。

答案:對已知循環(huán)隊(duì)列的存儲空間大小為20,且當(dāng)前隊(duì)列的頭指針和尾指針的值分別為8和3,且該隊(duì)列的當(dāng)前的長度為____。

答案:15設(shè)循環(huán)隊(duì)列的容量為70,現(xiàn)經(jīng)過一系列的入隊(duì)和出隊(duì)操作后,front為20,rear為11,則隊(duì)列中元素的個(gè)數(shù)為____。

答案:61在具有n個(gè)元素的循環(huán)隊(duì)列中,隊(duì)滿時(shí)具有____個(gè)元素。

答案:n-1隊(duì)和棧的主要區(qū)別是()。

答案:限定插入和刪除的位置不同二、填空題在一個(gè)鏈隊(duì)列中,假定front和rear分別為隊(duì)頭指針和隊(duì)尾指針,刪除一個(gè)結(jié)點(diǎn)的操作是()。

答案:front=front->next棧和隊(duì)列都是()。

答案:限制存取點(diǎn)的線性結(jié)構(gòu)在解決計(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)。

答案:隊(duì)列循環(huán)隊(duì)列用數(shù)組A[0,m-1]存放其元素值,已知其頭尾指針分別是front和rear,則當(dāng)前隊(duì)列中的元素個(gè)數(shù)是()。

答案:(rear-front+m)%m隊(duì)列的刪除操作是在()。

答案:隊(duì)首判斷一個(gè)循環(huán)隊(duì)列Q(空間大小為M)為空的條件是()。

答案:Q->front==Q->rear當(dāng)用大小為N的數(shù)組存儲順序循環(huán)隊(duì)列時(shí),該隊(duì)列的最大長度為()。

答案:N-1在一個(gè)鏈隊(duì)列中,front和rear分別為頭指針和尾指針,則插入一個(gè)結(jié)點(diǎn)s的操作為()。

答案:rear->next=s;rear=s;循環(huán)隊(duì)列的隊(duì)頭和隊(duì)尾指針分別為front和rear,則判斷循環(huán)隊(duì)列為空的條件是()。

答案:front==rear隊(duì)列的插入操作是在()。

答案:隊(duì)尾若用一個(gè)大小為6的數(shù)組來實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)rear和front的值分別為0,3。當(dāng)從隊(duì)列中刪除一個(gè)元素,再加入兩個(gè)元素后,rear和front的值分別為()。

答案:2和4判斷一個(gè)循環(huán)隊(duì)列Q(最多n個(gè)元素)為滿的條件是()。

答案:Q->front==(Q->rear+1)%n編寫求一棵二叉樹中結(jié)點(diǎn)總數(shù)的算法。

答案:(以先序遍歷的方法為例)voidcount_preorder(Bitree*t,int*n){if(t!=NULL){*n++;count_preorder(t->lchild);count_preorder(t->lchild);}}/star3/origin/677a59a11d6018939127727e0e31250b.png

答案:先序:FDBACEGIHJ中序:ABCDEFGHIJ后序:ACBEDHJIGF已知權(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=79寫出下面算法的功能。voidfunction(Bitree*t){if(p!=NULL){function(p->lchild);function(p->rchild);printf(“%d”,p->data);}}

答案:二叉樹后序遍歷遞歸算法1、假設(shè)一棵二叉樹的先序序列為EBADCFHGIKJ,中序序列為ABCDEFGHIJK,請畫出該二叉樹。2、假設(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ì)哈夫曼編碼。3、已知二叉樹的先序遍歷序列為ABCDEFGH,中序遍歷序列為CBEDFAGH,畫出二叉樹。二叉樹形態(tài)4、試用權(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+12=69寫出下面算法的功能。Bitree*function(Bitree*bt){Bitree*t,*t1,*t2;if(bt==NULL)t=NULL;else{t=(Bitree*)malloc(sizeof(Bitree));t->data=bt->data;t1=function(bt->left);t2=function(bt->right);t->left=t2;t->right=t1;}return(t);}

答案:交換二叉樹結(jié)點(diǎn)左右子樹的遞歸算法完全二叉樹的某結(jié)點(diǎn)若無左孩子,則它必是葉結(jié)點(diǎn)。

答案:對一個(gè)含有n個(gè)結(jié)點(diǎn)的完全二叉樹,它的高度是取整log2n+1。

答案:對存在這樣的二叉樹,對它采用任何次序的遍歷,結(jié)果相同。

答案:對一份電文中有6種字符:A,B,C,D,E,F,它們的出現(xiàn)頻率依次為16,5,9,3,30,1,完成問題:____設(shè)計(jì)一棵哈夫曼樹;(畫出其樹結(jié)構(gòu))____計(jì)算其帶權(quán)路徑長度WPL;

答案:(1函數(shù)depth實(shí)現(xiàn)返回二叉樹的高度,請?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。intdepth(Bitree*t){if(t==NULL)return0;else{hl=depth(t->lchild);hr=____;if(____)returnhl+1;elsereturnhr+1;}}

答案:depth(t->rchild;hl>hr函數(shù)InOrderTraverse(Bitreebt)實(shí)現(xiàn)二叉樹的中序遍歷,請?jiān)诳崭裉帉⑺惴ㄑa(bǔ)充完整。voidInOrderTraverse(BiTreebt){if(____){InOrderTraverse(bt->lchild);printf(“%c”,bt->data);____;}}

答案:bt!=NULL;InOrderTraverse(bt->rchild樹內(nèi)各結(jié)點(diǎn)度的____稱為樹的度。

答案:最大值在一棵二叉樹中,度為0的結(jié)點(diǎn)的個(gè)數(shù)是n0,度為2的結(jié)點(diǎn)的個(gè)數(shù)為n2,則有n0=____。

答案:N2+1哈夫曼樹是其樹的帶權(quán)路徑長度____的二叉樹。

答案:最小具有n個(gè)結(jié)點(diǎn)的完全二叉樹的深度是____。

答案:取整log2n+1由權(quán)值為3,6,7,2,5的葉子結(jié)點(diǎn)生成一棵哈夫曼樹,它的帶權(quán)路徑長度為()。

答案:51按照二叉樹的定義,具有3個(gè)結(jié)點(diǎn)的二叉樹有()種。

答案:5樹的先根序列等同于與該樹對應(yīng)的二叉樹的()。

答案:先序序列下面說法中正確的是()。

答案:子樹有嚴(yán)格左右之分,且度不超過2的樹是二叉樹用順序存儲的方法,將完全二叉樹中所有結(jié)點(diǎn)按層逐個(gè)從左到右的順序存放在一維數(shù)組R[1..n]中,若結(jié)點(diǎn)R[i]有左孩子,則其左孩子是()。

答案:R[2i]在下列情況中,可稱為二叉樹的是()。

答案:哈夫曼樹假定在一棵二叉樹中,度為2的結(jié)點(diǎn)數(shù)為15,度為1的結(jié)點(diǎn)數(shù)為30,則葉子結(jié)點(diǎn)數(shù)為()個(gè)。

答案:16任何一棵二叉樹的葉結(jié)點(diǎn)在先序、中序和后序遍歷序列中的相對次序()。

答案:不發(fā)生改變表達(dá)式A*(B+C)/(D-E+F)的后綴表達(dá)式是()。

答案:ABC+*DE-F+/對某二叉樹進(jìn)行先序遍歷的結(jié)果為ABDEFC,中序遍歷的結(jié)果為DBFEAC,則后序遍歷的結(jié)果是()。

答案:DFEBCA表達(dá)式a*(b+c)-d的后綴表達(dá)式是()。

答案:abc+*d-將一棵有100個(gè)結(jié)點(diǎn)的完全二叉樹從根這一層開始,每一層上從左到右依次對結(jié)點(diǎn)進(jìn)行編號,根結(jié)點(diǎn)的編號為1,則編號為49的結(jié)點(diǎn)的左孩子編號為()。

答案:98若以{4,5,6,7,8}作為權(quán)值構(gòu)造哈夫曼樹,則該樹的帶權(quán)路徑長度為()。

答案:69某二叉樹的中序序列為ABCDEFG,后序序列為BDCAFGE,則其左子樹中結(jié)點(diǎn)數(shù)目為()。

答案:4由二叉樹的前序和后序遍歷序列()惟一確定這棵二叉樹。

答案:不能在一棵具有5層的滿二叉樹中結(jié)點(diǎn)總數(shù)為()。

答案:31設(shè)一棵二叉樹的中序遍歷序列:badce,后序遍歷序列:bdeca,則二叉樹先序遍歷序列為()。

答案:adbce設(shè)a,b為一棵二叉樹上的兩個(gè)結(jié)點(diǎn),在中序遍歷時(shí),a在b前面的條件是()。

答案:a在b的左方用順序存儲的方法,將完全二叉樹中所有結(jié)點(diǎn)按層逐個(gè)從左到右的順序存放在一維數(shù)組R[1..N]中,若結(jié)點(diǎn)R[i]有右孩子,則其右孩子是()。

答案:R[2i+1]二叉樹的深度為k,則二叉樹最多有()個(gè)結(jié)點(diǎn)。

答案:2k-1/star3/origin/95579f85cf8a390ab840ca37963297bd.png

答案:(1)圖形態(tài):(2)prim算法求最小生成樹:/star3/origin/b88e6c559253182702ef73b0bf5cb79d.png

答案:(1)求ve和vl(2)關(guān)鍵路徑如下所示的有向圖,回答下面問題:(1)該圖是強(qiáng)連通的嗎?若不是,給出強(qiáng)連通分量。(2)請給出圖的鄰接矩陣和鄰接表表示。(1)是強(qiáng)連通圖(2)鄰接矩陣和鄰接表為:/star3/origin/d1c53e4e6005d82c1bcb668a968eda61.png

答案:拓?fù)渑判蛉缦?v1,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,v8/star3/origin/df190073c29a970416c9cfe2232b30d2.png

答案:prim算法求最小生成樹如下:/star3/origin/1cfe7311428f517384d6fffc74547b95.png

答案:終點(diǎn)從v0到各終點(diǎn)的d值和最短路徑的求解過程i=1i=2i=3i=4v112(v0,v1)12(v0,v1)7(v0,v4,v1)v24(v0,v2)v39(v0,v3)8(v0,v2,v3)7(v0,v4,v3)7(v0,v4,v3)v45(v0,v4)5(v0,v4)vjv2v4v1v3s{v0,v2}{v0,v4}{v0,v4,v1}{v0,v4,v3}/star3/origin/1e5169cf617594d1830d93d1826266b8.png

答案:(1)最早發(fā)生時(shí)間和最遲發(fā)生時(shí)間:(2)關(guān)鍵路徑:/star3/origin/5740e2c8e920c6ad8e39cd18f6ec2500.png

答案:1,5,2,3,6,41,5,6,2,3,45,1,2,3,6,45,1,6,2,3,45,6,1,2,3,4/star3/origin/0a10d9273536bf282983479094920733.png

答案:(1)圖形態(tài)(2)深度優(yōu)先搜索樹圖的生成樹是惟一的。

答案:錯(cuò)AOV網(wǎng)是一個(gè)帶權(quán)的有向圖。

答案:錯(cuò)存儲圖的鄰接矩陣中,鄰接矩陣的大小不但與圖的頂點(diǎn)個(gè)數(shù)有關(guān),而且與圖的邊數(shù)也有關(guān)。

答案:錯(cuò)鄰接表只能用于存儲有向圖,而鄰接矩陣則可存儲有向圖和無向圖。

答案:錯(cuò)圖的深度優(yōu)先搜索序列和廣度優(yōu)先搜索序列不是惟一的。

答案:對一個(gè)圖的廣度優(yōu)先搜索樹是惟一的。

答案:錯(cuò)圖的連通分量是無向圖的極小連通子圖。

答案:錯(cuò)/star3/origin/1008a341336103e7c6f4011f9de7b2e9.png

答案:(1若以鄰接矩陣表示有向圖,則鄰接矩陣上第i行中非零元素的個(gè)數(shù)即為頂點(diǎn)vi的____。

答案:出度已知一個(gè)圖的鄰接矩陣表示,刪除所有從第i個(gè)結(jié)點(diǎn)出發(fā)的邊的方法是____。

答案:把第i行中的非零元素值置0n個(gè)頂點(diǎn)的無向圖最多有____邊。

答案:n(n-1已知一個(gè)圖的鄰接矩陣表示,計(jì)算第i個(gè)結(jié)點(diǎn)的入度的方法是____。

答案:查詢第i列中非零元素的個(gè)數(shù)判定一個(gè)有向圖是否存在回路,可以利用____。

答案:拓?fù)渑判蛟跓o向圖G的鄰接矩陣A中,若A[i][j]等于1,則A[j][i]等于____。

答案:1遍歷圖的基本方法有深度優(yōu)先搜索和廣度優(yōu)先搜索,其中____是一個(gè)遞歸過程。

答案:深度優(yōu)先搜索一個(gè)圖的____表示法是惟一的。

答案:鄰接矩陣一個(gè)連通圖的生成樹是一個(gè)____,它包含圖中所有頂點(diǎn),但只有足以構(gòu)成一棵樹的n-1條邊。

答案:極小連通子圖n個(gè)頂點(diǎn)的連通圖至少有____邊。

答案:n-1條無向圖中一個(gè)頂點(diǎn)的度是指圖中()。

答案:與該頂點(diǎn)相鄰接的頂點(diǎn)數(shù)一個(gè)具有8個(gè)頂點(diǎn)的有向圖中,所有頂點(diǎn)的入度之和與所有頂點(diǎn)的出度之和的差等于()。

答案:0對于一個(gè)有向圖,若一個(gè)頂點(diǎn)的入度為k1,、出度為k2,則對應(yīng)鄰接表中該頂點(diǎn)單鏈表中的結(jié)點(diǎn)數(shù)為()。

答案:k2/star3/origin/06494af065e0c75ee426bf221ef8c5ee.png

答案:v1,v3,v2,v4,v5任何一個(gè)無向連通圖的最小生成樹()種。

答案:只有一棵為便于判別有向圖中是否存在回路,可借助于()。

答案:拓?fù)渑判蛩惴?star3/origin/f6e5de6bdfecd8f4bbea68e840e86bc9.png

答案:有向圖假設(shè)有向圖含n個(gè)頂點(diǎn)及e條弧,則表示該圖的鄰接表中包含的弧結(jié)點(diǎn)個(gè)數(shù)為()。

答案:e/star3/origin/436ba141bfae2c189d7fa9f2f9a74638.png

答案:v1,v3,v4,v5,v2一個(gè)具有n個(gè)頂點(diǎn)的有向圖最多有()條邊。

答案:n×(n-1)采用鄰接表存儲的圖的廣度優(yōu)先遍歷算法類似于二叉樹的()。

答案:按層次遍歷帶權(quán)有向圖G用鄰接矩陣A存儲,則頂點(diǎn)i的入度為A中:()。

答案:第i列非且非0的元素個(gè)數(shù)下列關(guān)于圖遍歷的說法不正確的是()。

答案:非連通圖不能用深度優(yōu)先搜索法在一個(gè)有向圖中,所有頂點(diǎn)的入度之和等于所有頂點(diǎn)的出度之和的()倍。

答案:1任一個(gè)有向圖的拓?fù)湫蛄?)。

答案:有一個(gè)或多個(gè)已知一個(gè)有向圖的鄰接矩陣表示,要?jiǎng)h除所有從第i個(gè)結(jié)點(diǎn)發(fā)出的邊,應(yīng)()。

答案:將鄰接矩陣的第i行元素全部置為0設(shè)G1=(V1,E1)和G2=(V2,E2)為兩個(gè)圖,如果V1V2,E1E2則稱()。

答案:G1是G2的子圖在有向圖的逆鄰接表中,每個(gè)頂點(diǎn)鄰接表鏈接著該頂點(diǎn)所有()鄰接點(diǎn)。

答案:入邊在無向圖中定義頂點(diǎn)vi與vj之間的路徑為從vi到vj的一個(gè)()。

答案:頂點(diǎn)序列下面有向圖所示的拓?fù)渑判虻慕Y(jié)果序列是()。

答案:516234鄰接表是圖的一種()。

答案:鏈?zhǔn)酱鎯Y(jié)構(gòu)當(dāng)利用大小為N的數(shù)組存儲循環(huán)隊(duì)列時(shí),該隊(duì)列的最大長度是()。

答案:N-1無向圖的鄰接矩陣是一個(gè)()。

答案:對稱矩陣采用鄰接表存儲的圖,其深度優(yōu)先遍歷類似于二叉樹的()。

答案:先序遍歷帶權(quán)有向圖G用鄰接矩陣A存儲,則頂點(diǎn)i的入度等于A中()。

答案:第i列非無窮且非零的元素個(gè)數(shù)之和下面()可以判斷出一個(gè)有向圖中是否有環(huán)(回路)。

答案:拓?fù)渑判蜿P(guān)鍵路徑是事件結(jié)點(diǎn)網(wǎng)絡(luò)中()。

答案:從源點(diǎn)到匯點(diǎn)的最長路徑如果從無向圖的任一頂點(diǎn)出發(fā)進(jìn)行一次深度優(yōu)先搜索即可訪問所有頂點(diǎn),則該圖一定是()。

答案:連通圖12、對于具有n個(gè)頂點(diǎn)的圖,若采用鄰接矩陣表示,則該矩陣的大小為()。

答案:n2設(shè)散列表的長度為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):設(shè)哈希表HT表長m為13,哈希函數(shù)為H(k)=kMODm,給定的關(guān)鍵值序列為{19,14,23,10,68,20,84,27,55,11}。試求出用線性探測法解決沖突時(shí)所構(gòu)造的哈希表,并求出在等概率的情況下查找成功的平均查找長度ASL。

答案:(1)表形態(tài):(2)平均查找長度:ASL(10)=(1*5+2*4+3*1)/10=1.6選取哈希函數(shù)H(k)=(k)MOD11。用二次探測再散列處理沖突,試在0-10的散列地址空間中對關(guān)鍵字序列(22,41,53,46,30,13,01,67)造哈希表,并求等概率情況下查找成功時(shí)的平均查找長度。

答案:(1)表形態(tài):(2)ASL:ASL(7)=(1*5+2*1+3*1)/7=(5+2+3)/7=10/7在散列存儲中,裝填因子α的值越大,則存取元素時(shí)發(fā)生沖突的可能性就越大;α值越小,則存取元素發(fā)生沖突的可能性就越小。(×)1、折半查找只適用于有序表,包括有序的順序表和鏈表。

答案:錯(cuò)誤(√)2、二叉排序樹的任意一棵子樹中,關(guān)鍵字最小的結(jié)點(diǎn)必?zé)o左孩子,關(guān)鍵字最大的結(jié)點(diǎn)必?zé)o右孩子。正確(√)3、哈希表的查找效率主要取決于哈希表造表時(shí)所選取的哈希函數(shù)和處理沖突的方法。正確(√)4、平衡二叉樹是指左右子樹的高度差的絕對值不大于1的二叉樹。正確(√)5、AVL是一棵二叉樹,其樹上任一結(jié)點(diǎn)的平衡因子的絕對值不大于1。正確依次讀入給定的整數(shù)序列{7,16,4,8,20,9,6,18,5},構(gòu)造一棵二叉排序樹,并計(jì)算在等概率情況下該二叉排序樹的平均查找長度ASL。____

答案:要求給出構(gòu)造過程已知關(guān)鍵字序列{11,2,13,26,5,18,4,9},設(shè)哈希表表長為16,哈希函數(shù)H____=keyMOD13,處理沖突的方法為線性探測法,請給出哈希表,并計(jì)算在等概率的條件下的平均查找長度。

答案:key設(shè)有一組關(guān)鍵字{19,1,23,14,55,20,84,27,68,11,10,77},采用哈希函數(shù)H____=keyMOD13,采用開放地址法的二次探測再散列方法解決沖突,試在0-18的散列空間中對關(guān)鍵字序列構(gòu)造哈希表,畫出哈希表,并求其查找成功時(shí)的平均查找長度。

答案:key若依次輸入序列{62,68,30,61,25,14,53,47,90,84}中的元素,生成一棵二叉排序樹。畫出生成后的二叉排序樹____。

答案:不需畫出生成過程設(shè)散列表容量為7(散列地址空間0..6),給定表(30,36,47,52,34),散列函數(shù)H(K)=Kmod6,采用線性探測法解決沖突,要求:____構(gòu)造散列表;____求查找數(shù)34需要比較的次數(shù)。

答案:(1在一棵二叉排序樹上實(shí)施____遍歷后,其關(guān)鍵字序列是一個(gè)有序表。

答案:中序具有相同函數(shù)值的關(guān)鍵字對哈希函數(shù)來說稱為____。

答案:同義詞已知有序表為(12,18,24,35,47,50,62,83,90,115,134),當(dāng)用折半查找90時(shí),需進(jìn)行____次查找可確定成功。

答案:2/star3/origin/3f542f28d33408bc4bf9994e046691c4.png

答案:C解決散列法中出現(xiàn)的沖突問題常采用的方法是()。

答案:線性探測法、多重散列法、鏈地址法對一棵二叉排序樹按()遍歷,可得到結(jié)點(diǎn)值從小到大的排列序列。

答案:中序在各種查找方法中,平均查找承擔(dān)與結(jié)點(diǎn)個(gè)數(shù)n無關(guān)的查找方法是()。

答案:哈希查找一個(gè)待散列的線性表為k={18,25,63,50,42,32,9},散列函數(shù)為H(k)=kMOD9,與18發(fā)生沖突的元素有()個(gè)。

答案:2在散列查找中,平均查找長度主要與()有關(guān)。

答案:裝填因子設(shè)哈希表長m=14,哈希函數(shù)H(key)=keyMOD11。表中已有4個(gè)結(jié)點(diǎn):addr(15)=4,addr(38)=5,addr(61)=6,addr(84)=7其余地址為空,如用二次探測再散列處理沖突,則關(guān)鍵字為49的地址為()。

答案:9已知表長為25的哈希表,用除留取余法,按公式H(key)=keyMODp建立哈希表,則p應(yīng)取()為宜。

答案:23在一棵深度為h的具有n個(gè)元素的二叉排序樹中,查找所有元素的最長查找長度為()。

答案:h解決哈希沖突的主要方法有()。

答案:線性探測法、再哈希法、鏈地址法已知一個(gè)有序表為(11,22,33,44,55,66,77,88,99),則折半查找55需要比較()次。

答案:1有一關(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,937已知關(guān)鍵字序列{418,347,289,110,505,333,984,693,177},按遞增排序,求初始堆(畫出初始堆的狀態(tài))。

答案:418,347,289,110,505,333,984,693,177設(shè)待排序序列為{10,18,4,3,6,12,1,9,15,8}請寫出希爾排序每一趟的結(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,18寫出用直接插入排序?qū)㈥P(guān)鍵字序列{54,23,89,48,64,50,25,90,34}排

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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

提交評論