




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)結(jié)構(gòu)(本)期末綜合練習(xí)二一、單項(xiàng)選擇題1.從n個(gè)數(shù)中選取最大元素()。A.基本操作是數(shù)據(jù)元素間的互換B.算法的時(shí)間復(fù)雜度是O(n)C.算法的時(shí)間復(fù)雜度是O(n2)D.需要進(jìn)行(n+1)次數(shù)據(jù)元素間的比較2.線性表采用鏈?zhǔn)酱鎯?chǔ)時(shí),其地址()。A.一定是不連續(xù)的B.必須是連續(xù)的C.部分地址必須是連續(xù)的D.可以連續(xù)也可以不連續(xù)3.設(shè)head為非空的單向循環(huán)鏈表頭指針,p指向鏈表的尾結(jié)點(diǎn),則滿足邏輯表達(dá)式()的值為真。A.p->next=NULLB.p->next==headC.p->next=headD.p==NULL4.帶頭結(jié)點(diǎn)的單向鏈表的頭指針為head,該鏈表為空的鑒定條件是()的值為真。A.head==NULLB.head->next==headC.head==head->nextD.head->next==NULL5.設(shè)順序存儲(chǔ)的線性表長(zhǎng)度為n,要?jiǎng)h除第i個(gè)元素,按課本的算法,當(dāng)i=()時(shí),移動(dòng)元素的次數(shù)為3A.3B.n/2C.n-3D6.設(shè)順序存儲(chǔ)的線性表長(zhǎng)度為n,對(duì)于插入操作,設(shè)插入位置是等概率的,則插入一個(gè)元素平均移動(dòng)元素的次數(shù)為()。A.nB.n/2C.n-1D.n-7.一個(gè)棧的進(jìn)棧序列是a,b,c,d,則棧的不也許的出棧序列是()。A.dcbaB.bcadC.cbadD.adbc8.一個(gè)棧的進(jìn)棧序列是5,6,7,8,則棧的不也許的出棧序列是()(進(jìn)出棧操作可以交替進(jìn)行)A.7,6,8,5B.5,8,6,7C.7,6,5,8D.8,7,6,59.設(shè)有一個(gè)帶頭結(jié)點(diǎn)的鏈隊(duì)列,隊(duì)列中每個(gè)結(jié)點(diǎn)由一個(gè)數(shù)據(jù)域data和指針域next組成,front和rear分別為鏈隊(duì)列的頭指針和尾指針,要執(zhí)行出隊(duì)操作,用x保存出隊(duì)元素的值,p為指向結(jié)點(diǎn)類型的指針,可執(zhí)行如下操作:p=front->next;x=p->data;然后指行()。A.front=p->next;B.front->next=p;C.front=p;D.front->next=p->next;10.棧和隊(duì)列的相同點(diǎn)是()。A.都是后進(jìn)先出B.都是后進(jìn)后出C.邏輯結(jié)構(gòu)與線性表不同D.邏輯結(jié)構(gòu)與線性表相同,都是操作規(guī)則受到限制的線性表11.在C語(yǔ)言中,存儲(chǔ)字符串“ABCD”需要占用()字節(jié)。A.4B.2C.5D12.在C語(yǔ)言中,運(yùn)用數(shù)組a存放字符串“Hello”,以下語(yǔ)句中對(duì)的的是()。A.chara[10]=“Hello”;B.chara[10];a=“Hello”;C.chara[10]=‘Hello’;D.chara[10]={‘H’,’e’,’l’,’l’,’o’};13.設(shè)有一個(gè)10階的對(duì)稱矩陣A,采用壓縮存儲(chǔ)方式將其下三角部分以行序?yàn)橹餍虼鎯?chǔ)到一維數(shù)組b中。(矩陣A的第一個(gè)元素為a1,1,數(shù)組b的下標(biāo)從1開始),則矩陣元素a5,3相應(yīng)一維數(shù)組b的數(shù)組元素是()。A.b[18]B.b[8]C.b[13]D.b[10]14.設(shè)有一個(gè)15階的對(duì)稱矩陣A,采用壓縮存儲(chǔ)方式將其下三角部分以行序?yàn)橹餍虼鎯?chǔ)到一維數(shù)組b中。(矩陣A的第一個(gè)元素為a1,1,數(shù)組b的下標(biāo)從1開始),則數(shù)組元素b[13]相應(yīng)A的矩陣元素是()。A.a5,3B.a(chǎn)6,4C.a7,2D15.深度為5的完全二叉樹共有20個(gè)結(jié)點(diǎn),則第5層上有()個(gè)結(jié)點(diǎn)(根所在結(jié)點(diǎn)為第一層)。A.3B.8C16.一棵完全二叉樹共有30個(gè)結(jié)點(diǎn),則該樹一共有()層(根結(jié)點(diǎn)所在層為第一層)。A.6B.4C.3D17.已知一個(gè)圖的所有頂點(diǎn)的度數(shù)之和為m,且m是以下4中情況之一,則m只也許是()。A.9B.7C.15D18.以下說(shuō)法對(duì)的的是()。A.連通圖G的生成樹中不一定包含G的所有頂點(diǎn)B.連通圖G的生成樹中一定要包含G的所有邊C.連通圖G一定存在生成樹D.連通圖G的生成樹一定是唯一的19.線性表只要以()方式存儲(chǔ)就能進(jìn)行折半查找。A.鏈接B.順序C.關(guān)鍵字有序的順序D.二叉樹20.對(duì)二叉排序樹進(jìn)行()遍歷,遍歷所得到的序列是有序序列。A.按層次B.前序C.中序D.后序21.對(duì)n個(gè)元素進(jìn)行冒泡排序若某趟冒泡中只進(jìn)行了()次元素間的互換,則表白序列已經(jīng)排好序。A.1B.2C.0D22.以下排序算法中,在一趟排序過(guò)程中,除了其它相關(guān)操作外,只進(jìn)行一次元素間的互換的算法是()。A.冒泡B.直接選擇C.直接插入D.折半插入23.在對(duì)一組元素(64,48,106,33,25,82,70,55,93)進(jìn)行直接插入排序時(shí),當(dāng)進(jìn)行到要把第7個(gè)元素70插入到已經(jīng)排好序的子表時(shí),為找到插入位置,需進(jìn)行()次元素間的比較(指由小到大排序)。A.6B.2C.3D24.對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在等概率情況下,平均查找長(zhǎng)度為()。A.nB.(n+1)/2C.2nD.n-1SHAPE\*MERGEFORMAT25.如圖,若從頂點(diǎn)a出發(fā)按廣度優(yōu)先搜索法進(jìn)行遍歷,則也許得到的頂點(diǎn)序列為()。abecdfgabecdfgB.acfedgbC.abecdgfD.abecfdg26.如圖若從頂點(diǎn)a出發(fā)按深度優(yōu)先搜索法進(jìn)行遍歷,則也許得到的頂點(diǎn)序列為()。ababecdfgB.aedcbgfC.a(chǎn)cfebdgD.aecbdgf27.一棵哈夫曼樹有10個(gè)非葉子結(jié)點(diǎn)(非終端結(jié)點(diǎn)),該樹總共有()個(gè)結(jié)點(diǎn)。A.21B.20C.228.一棵哈夫曼樹有12個(gè)葉子結(jié)點(diǎn)(終端結(jié)點(diǎn)),該樹總共有()個(gè)結(jié)點(diǎn)。A.21B.22C.23D29.隊(duì)列的插入操作在()進(jìn)行。A.隊(duì)頭B.隊(duì)尾C.隊(duì)頭或隊(duì)尾D.在任意指定位置30.隊(duì)列的刪除操作在()進(jìn)行。A.隊(duì)尾B.隊(duì)頭C.隊(duì)頭或隊(duì)尾D.在任意指定位置二、填空題1.通??梢园涯吵鞘兄懈鞴徽军c(diǎn)間的線路圖抽象成____(dá)__(dá)__結(jié)構(gòu)。2.結(jié)構(gòu)中的元素之間存在多對(duì)多的關(guān)系稱為__(dá)_____(dá)_結(jié)構(gòu)。3.要在一個(gè)單向鏈表中刪除p所指向的結(jié)點(diǎn),已知q指向p所指結(jié)點(diǎn)的直接前驅(qū)結(jié)點(diǎn),若鏈表中結(jié)點(diǎn)的指針域?yàn)閚ext,則可執(zhí)行______(dá)__。4.設(shè)有一個(gè)單向循環(huán)鏈表,結(jié)點(diǎn)的指針域?yàn)閚ext,頭指針為head,指針p指向表中某結(jié)點(diǎn),若邏輯表達(dá)式___(dá)___(dá)__的結(jié)果為真,則p所指結(jié)點(diǎn)為尾結(jié)點(diǎn)。5.設(shè)有一個(gè)鏈棧,棧頂指針為hs,現(xiàn)有一個(gè)s所指向的結(jié)點(diǎn)要入棧,則可執(zhí)行操作__(dá)______和hs=s;6.設(shè)有一個(gè)鏈棧,棧頂指針為hs,現(xiàn)有一個(gè)s所指向的結(jié)點(diǎn)要入棧,則可執(zhí)行操作s->next=hs;_______(dá)_。7.在一個(gè)不帶頭結(jié)點(diǎn)的非空鏈隊(duì)中,f和r分別為隊(duì)頭和隊(duì)尾指針,隊(duì)結(jié)點(diǎn)的數(shù)據(jù)域?yàn)椋鋋ta,指針域?yàn)閚ext,若要進(jìn)行出隊(duì)操作,并用變量x存放出隊(duì)元素的數(shù)據(jù)值,則相關(guān)操作為_____(dá)___;____(dá)___(dá)_。8.在一個(gè)鏈隊(duì)中,f和r分別為隊(duì)頭和隊(duì)尾指針,隊(duì)結(jié)點(diǎn)的指針域?yàn)閚ext,s指向一個(gè)要入隊(duì)的結(jié)點(diǎn),則入隊(duì)操作為___(dá)____(dá)_;_____(dá)___(dá);9.順序存儲(chǔ)字符串“ABCD”需要占用_____(dá)__(dá)_個(gè)字節(jié)。10.循環(huán)隊(duì)列的最大存儲(chǔ)空間為MaxSize=6,采用少用一個(gè)元素空間以有效地判斷棧空或棧滿,若隊(duì)頭指針front=4,當(dāng)隊(duì)尾指針rear=_____(dá)___時(shí)隊(duì)滿,隊(duì)列中共有____(dá)____個(gè)元素。11.一棵二叉樹葉結(jié)點(diǎn)(終端結(jié)點(diǎn))數(shù)為5,單分支結(jié)點(diǎn)數(shù)為2,該樹共有____(dá)__個(gè)結(jié)點(diǎn)12.程序段char*s=”aBcD”;n=0;while(*s!=’\0’{if(*s>=’a’&&*s<=’z’)n++;s++;}執(zhí)行后n=_______(dá)_13.設(shè)一棵完全二叉樹,其最高層上最右邊的葉結(jié)點(diǎn)的編號(hào)為奇數(shù),該葉節(jié)點(diǎn)的雙親結(jié)點(diǎn)的編號(hào)為10,該完全二叉樹一共有____(dá)__(dá)__個(gè)結(jié)點(diǎn)。14.一棵二叉樹中順序編號(hào)為5的結(jié)點(diǎn)(樹中各結(jié)點(diǎn)的編號(hào)與等深度的完全二叉中相應(yīng)位置上結(jié)點(diǎn)的編號(hào)相同),若它存在左孩子,則左孩子的編號(hào)為__(dá)_____(dá)_。15.結(jié)構(gòu)中的數(shù)據(jù)元素存在一對(duì)多的關(guān)系稱為____(dá)____結(jié)構(gòu)。16.根據(jù)搜索方法的不同,圖的遍歷有_______(dá)_兩種方法。17.結(jié)構(gòu)中的數(shù)據(jù)元素存在一對(duì)一的關(guān)系稱為__(dá)______(dá)結(jié)構(gòu)。18.結(jié)構(gòu)中的數(shù)據(jù)元素存在多對(duì)多的關(guān)系稱為_____(dá)__(dá)_結(jié)構(gòu)。19.如圖所示的二叉樹,其后序遍歷序列為。eefgibachd20.一棵有n個(gè)葉結(jié)點(diǎn)的二叉樹,其每一個(gè)非葉結(jié)點(diǎn)的度數(shù)都為2,則該樹共有_______(dá)個(gè)結(jié)點(diǎn)。21.圖的深度優(yōu)先搜索和廣度優(yōu)先搜索序列不一定是唯一的。此斷言是______的。(回答對(duì)的或不對(duì)的)22.串的兩種最基本的存儲(chǔ)方式分別是_____(dá)__和__(dá)____(dá)__。23.按某關(guān)鍵字對(duì)記錄序列排序,若關(guān)鍵字的記錄在排序前和排序后仍保持它們的前后關(guān)系,則排序算法是穩(wěn)定的,否則是不穩(wěn)定的。24.按某關(guān)鍵字對(duì)記錄序列排序,若關(guān)鍵字的記錄在排序前和排序后仍保持它們的前后關(guān)系,則排序算法是穩(wěn)定的,否則是不穩(wěn)定的。三、綜合題1.(1)一組記錄的關(guān)鍵字序列為{45,40,65,43,35,95}寫出運(yùn)用快速排序的方法,以第一個(gè)記錄為基準(zhǔn)得到的一趟劃分的結(jié)果(規(guī)定給出一趟劃分中每次掃描和互換的結(jié)果)(2)同樣對(duì)序列{45,40,65,43,35,95}運(yùn)用直接插入排序,寫出逐次插入過(guò)程(從第一個(gè)元素一直到第六個(gè)元素)。2.設(shè)有一個(gè)不帶頭結(jié)點(diǎn)的單向鏈表,頭指針為head,結(jié)點(diǎn)類型為NODE,每個(gè)結(jié)點(diǎn)包含一個(gè)數(shù)據(jù)域data和一個(gè)指針域next,該鏈表有兩個(gè)結(jié)點(diǎn),p指向第二個(gè)結(jié)點(diǎn)(尾結(jié)點(diǎn)),按以下規(guī)定寫出相應(yīng)語(yǔ)句(不規(guī)定完整程序,(1)、(2)、(3)、(4)是一個(gè)連續(xù)的過(guò)程)。(1)新開辟一個(gè)結(jié)點(diǎn),使指針s指向該結(jié)點(diǎn),結(jié)點(diǎn)的數(shù)據(jù)成員data賦值為1(2)把該結(jié)點(diǎn)插入鏈表的尾部,釋放指針s的指向(3)刪除鏈表的第一個(gè)結(jié)點(diǎn)(4)已知p1指向另一個(gè)新結(jié)點(diǎn),把它插入到p所指結(jié)點(diǎn)和尾結(jié)點(diǎn)之間3.(1)運(yùn)用篩選過(guò)程把序列{42,82,67,102,16,32,57,52}建成堆(小根堆),畫出相應(yīng)的完全二叉樹(不規(guī)定中間過(guò)程)(2)寫出對(duì)上述堆相應(yīng)的完全二叉樹進(jìn)行中序遍歷得到的序列4.(1)設(shè)有序列{10,12,15,19,22,25,100,130,150,200}畫出對(duì)上述序列進(jìn)行折半查找的鑒定樹(以序列中的元素作為樹的結(jié)點(diǎn))(2)為了成功查找到100需要進(jìn)行多少次元素間的比較?為了查找9,通過(guò)多少次元素間的比較可知道查找失敗?5.(1)設(shè)有一個(gè)整數(shù)序列{50,38,16,82,110,13,64},依次取出序列中的數(shù),構(gòu)造一棵二叉排序樹(2)運(yùn)用上述二叉排序樹,為了查找110,經(jīng)多少次元素間的比較能成功查到,為了查找15,經(jīng)多少次元素間的比較可知道查找失?。?(1)設(shè)有查找表{5,14,2,6,18,7,4,16,3},依次取表中數(shù)據(jù),構(gòu)造一棵二叉排序樹。(2)說(shuō)明如何由序列的二叉排序樹得到相應(yīng)序列的排序結(jié)果,對(duì)上述二叉排序給出中序遍歷的結(jié)果。四、程序填空題1.以下函數(shù)為鏈棧的進(jìn)棧操作,x是要進(jìn)棧的結(jié)點(diǎn)的數(shù)據(jù)域,top為棧頂指針structnode{ElemTypedata;structnode*next;};structnode*top;voidPush(ElemTypex){structnode*p;p=(structnode*)malloc(__(dá)_(1)_____);p->dat(yī)a=x;___(2)_____(dá);_____(3)___(dá);}2.設(shè)線性表為(6,10,16,4),以下程序用說(shuō)明結(jié)構(gòu)變量的方法建立單向鏈表,并輸出鏈表中各結(jié)點(diǎn)中的數(shù)據(jù)。#defineNULL0voidmain(){NODEa,b,c,d,*head,*p;a.data=6;b.data=10;c.dat(yī)a=16;d.data=4;/*d是尾結(jié)點(diǎn)*/head=(1);a.next=&b;b.next=&c;c.next=&d;(2);/*以上結(jié)束建表過(guò)程*/p=head;/*p為工作指針,準(zhǔn)備輸出鏈表*/do{printf(“%d\n”,(3));(4);}while((5));}3.以下函數(shù)在head為頭指針的具有頭結(jié)點(diǎn)的單向鏈表中刪除第i個(gè)結(jié)點(diǎn),structnode{intdata;structnode*next;};typedefstructnodeNODEintdelete(NODE*head,inti){NODE*p,*q;intj;q=head;j=0;while((q!=NULL)&&(___(dá)(1)____(dá)_)){___(dá)(2)___(dá)__;j++;}if(q==NULL)return(0);p=___(3)____(dá)_;___(4)_____=p->next;free(___(dá)(5)___(dá)__);return(1);}4.以下程序是中序遍歷二叉樹的遞歸算法的程序,完畢程序中空格部分(樹結(jié)構(gòu)中左、右指針域分別為left和right,數(shù)據(jù)域data為字符型,BT指向根結(jié)點(diǎn))。voidInorder(structBTree(cuò)Node*BT){if(BT!=NULL){(1);(2);(3);}}答案一、單項(xiàng)選擇題(每小題2分,共30分)1.B2.D3.B4.D5.C6.B7.D8.B9.D10.D11.C12.A13.C14.A15.C16.D17.D18.C19.C20.C21.C22.B23.C24.B25.C26.A27.A28.C29.B30.B二、填空題(每題2分,共24分)1.圖狀2.圖狀3.q->next=p->next;4.p->next==head;5.s->next=hs;6.hs=s;7.x=f->data;f=f->next;8.r->next=s;r=s;9.510.3;511.1112.213.2114.1015、樹形16、深度優(yōu)先;廣度優(yōu)先17.線性18.圖狀(網(wǎng)狀)19.gdbeihfca20.2n-121.對(duì)的22.順序存儲(chǔ)
溫馨提示
- 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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)手輪調(diào)節(jié)節(jié)流閥市場(chǎng)調(diào)查研究報(bào)告
- 2025-2030年中國(guó)高錫甲基錫數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025-2030年中國(guó)風(fēng)力發(fā)電齒輪箱數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 烏魯木齊市中小學(xué)美術(shù)教師實(shí)施新課程的現(xiàn)狀調(diào)查及研究
- 做好鄉(xiāng)鎮(zhèn)工業(yè)統(tǒng)計(jì)工作的有效思考
- 農(nóng)村小學(xué)英語(yǔ)閱讀課堂創(chuàng)設(shè)有效情境的策略分析
- 基于視覺信息的腦血管介入手術(shù)術(shù)中態(tài)勢(shì)感知關(guān)鍵技術(shù)研究
- 書法藝術(shù)探索
- 財(cái)務(wù)管理調(diào)查
- 襪子外觀檢驗(yàn)流程
- 項(xiàng)目精細(xì)化管理檢查整改報(bào)告范文
- 分布式文件系統(tǒng)
- 手槍的基礎(chǔ)射擊演示文稿
- 浮針療法的學(xué)習(xí)課件
- 12K101-1 軸流通風(fēng)機(jī)安裝
- 上海市中小學(xué)生語(yǔ)文學(xué)業(yè)質(zhì)量綠色指標(biāo)測(cè)試
- 消防預(yù)留預(yù)埋施工【優(yōu)質(zhì)方案】
- 兩篇古典英文版成語(yǔ)故事畫蛇添足
- GB/T 21739-2008家用電梯制造與安裝規(guī)范
- 2023年杭州市余杭區(qū)事業(yè)單位招聘筆試題庫(kù)及答案解析
- 醫(yī)患溝通技巧講義課件
評(píng)論
0/150
提交評(píng)論