版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)結(jié)構(gòu)期末綜合練習(xí)2023年12月期末練習(xí)一一、單項(xiàng)選擇題1.一種邏輯結(jié)構(gòu)在存儲(chǔ)時(shí)()。A.只要存儲(chǔ)數(shù)據(jù)元素間的關(guān)系B.只能采用一種存儲(chǔ)結(jié)構(gòu)C.可采用不同的存儲(chǔ)結(jié)構(gòu)D.只要存儲(chǔ)數(shù)據(jù)元素的值2.同一種邏輯結(jié)構(gòu)()。A.只能有唯一的存儲(chǔ)結(jié)構(gòu)B.可以有不同的存儲(chǔ)結(jié)構(gòu)C.只能表達(dá)某一種數(shù)據(jù)元素之間的關(guān)系D.以上三種說法均不對(duì)的3.對(duì)鏈表,以下敘述中對(duì)的的是()。A.不能隨機(jī)訪問任一結(jié)點(diǎn)B.結(jié)點(diǎn)占用的存儲(chǔ)空間是連續(xù)的C.插入刪除元素的操作一定要要移動(dòng)結(jié)點(diǎn)D.可以通過下標(biāo)對(duì)鏈表進(jìn)行直接訪問4.鏈表所具有的特點(diǎn)是()。A.可以隨機(jī)訪問任一結(jié)點(diǎn)B.占用連續(xù)的存儲(chǔ)空間C.插入刪除元素的操作不需要移動(dòng)元素結(jié)點(diǎn)D.可以通過下標(biāo)對(duì)鏈表進(jìn)行直接訪問5.線性表在存儲(chǔ)后,假如相關(guān)操作是:規(guī)定已知第i個(gè)結(jié)點(diǎn)的位置訪問該結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn),則采用()存儲(chǔ)方式是不可行的。A.單鏈表B.雙鏈表C.單循環(huán)鏈表D.順序表6.?dāng)?shù)據(jù)的物理結(jié)構(gòu)()。A.與數(shù)據(jù)的邏輯結(jié)構(gòu)無關(guān)B.僅僅涉及數(shù)據(jù)元素的表達(dá)C.只涉及數(shù)據(jù)元素間關(guān)系的表達(dá)D.涉及數(shù)據(jù)元素的表達(dá)和關(guān)系的表達(dá)7.棧和隊(duì)列的共同特點(diǎn)是()。A.都是先進(jìn)后出B.元素都可以隨機(jī)進(jìn)出C.只允許在端點(diǎn)處插入和刪除元素D.都是先進(jìn)先出8.線性結(jié)構(gòu)中數(shù)據(jù)元素的位置之間存在()的關(guān)系。A.一對(duì)一B.一對(duì)多9.元素2,4,6,8按順序依次進(jìn)棧,按該棧的的也許輸出序列依次入隊(duì)列,該隊(duì)列的也許輸出序列是()(進(jìn)棧出??梢越惶孢M(jìn)行)。A.8,6,2,4B.8,4,2,6C.6,2,4,8D.8,6,4,210.以下表中可以隨機(jī)訪問的是()。A.單向鏈表B.雙向鏈表C.單向循環(huán)鏈表D.順序表11.在一個(gè)不帶頭結(jié)點(diǎn)的鏈隊(duì)中,假設(shè)f和r分別為隊(duì)頭和隊(duì)尾指針,則從該對(duì)列中刪除一個(gè)結(jié)點(diǎn)并把結(jié)點(diǎn)的值保存在變量x中的運(yùn)算為()。A.x=rdata;r=rnext;B.r=rnext;x=rdataC.x=fdata;f=fnext;D.f=fnext;x=fdata12.算法的時(shí)間復(fù)雜度與()有關(guān)。A.所使用的計(jì)算機(jī)B.與計(jì)算機(jī)的操作系統(tǒng)C.與算法自身D.與數(shù)據(jù)結(jié)構(gòu)13.設(shè)有一個(gè)20階的對(duì)稱矩陣A,采用壓縮存儲(chǔ)的方式,將其下三角部分以行序?yàn)橹餍虼鎯?chǔ)到一維數(shù)組B中(數(shù)組下標(biāo)從1開始),則數(shù)組中第38號(hào)元素相應(yīng)于矩陣中的元素是()。A.a(chǎn)10,8B.a(chǎn)7,6C.a(chǎn)9,2D.a(chǎn)14.設(shè)有一個(gè)長度為n的順序表,要?jiǎng)h除第i個(gè)元素需移動(dòng)元素的個(gè)數(shù)為()。A.n-i+1B.n-iC.n-i-1D.i15.在C語言中,分別存儲(chǔ)“S”和‘s’,各需要占用()字節(jié)。A.一個(gè)和兩個(gè)B.兩個(gè)C.一個(gè)D.兩個(gè)和一個(gè)16.在一個(gè)單鏈表中,p、q分別指向表中兩個(gè)相鄰的結(jié)點(diǎn),且q所指結(jié)點(diǎn)是p所指結(jié)點(diǎn)的直接后繼,現(xiàn)要?jiǎng)h除q所指結(jié)點(diǎn),可用的語句是()。A.p=q->nextB.p->next=qC.p->next=qnextD.q->next=NULL17.一棵有n個(gè)結(jié)點(diǎn),采用鏈?zhǔn)酱鎯?chǔ)的二叉樹中,共有()個(gè)指針域被有效使用(即指針域?yàn)榉强眨?。A.n+1B.nC.n-1D.n-218.從一個(gè)棧頂指針為top的鏈棧中刪除一個(gè)結(jié)點(diǎn)時(shí),用變量x保存被刪結(jié)點(diǎn)的值,則執(zhí)行()。A.x=top->data;top=top->next;B.x=top->data;C.top=top->next;x=top->data;D.top=top->next;x=data;19.在一棵二叉樹中,若編號(hào)為i的結(jié)點(diǎn)存在雙親結(jié)點(diǎn),則雙親結(jié)點(diǎn)的順序編號(hào)為()。A.i/2.0B.i/2向下取整C.2i+1D.i+220.在一個(gè)鏈隊(duì)中,假設(shè)f和r分別為隊(duì)頭和隊(duì)尾指針,則刪除一個(gè)結(jié)點(diǎn)的運(yùn)算為()。A.r=f->next;B.r=r->next;C.f=f->next;D.f=r->next;21.設(shè)一棵哈夫曼樹共有2n+1個(gè)結(jié)點(diǎn),則該樹有()個(gè)非葉結(jié)點(diǎn)。A.nB.n+1C.n-122.一個(gè)棧的進(jìn)棧序列是a,b,c,d,e,則棧的不也許輸出序列是()(進(jìn)棧出??梢越惶孢M(jìn)行)。A.dceabB.edcbaC.decbaD.a(chǎn)bcde23.一棵完全二叉樹共有4層,且第4層上有2個(gè)結(jié)點(diǎn),該樹共有()個(gè)非葉子結(jié)點(diǎn)(根為第一層)。A.5B.4C.324.有一個(gè)長度為10的有序表,按折半查找對(duì)該表進(jìn)行查找,在等概率情況下查找成功的平均比較次數(shù)為()。A.26/10B.29/1025.如圖1所示的一個(gè)圖,若從頂點(diǎn)a出發(fā),按廣度優(yōu)先搜索法進(jìn)行遍歷,則也許得到的一種頂點(diǎn)序列為()。A.abedfcB.acfebdC.aebcdfD.aebcfdbbdfeca圖126.排序算法中,從未排序序列中依次取出元素與已排序序列(初始為空)中的元素進(jìn)行比較(規(guī)定比較次數(shù)盡量少),然后將其放入已排序序列的對(duì)的位置的方法是()。A.冒泡B.直接插入C.折半插入D.選擇排序27.一組記錄的關(guān)鍵字序列為(56,30,89,66,48,50,94,87,100),運(yùn)用快速排序,以第一個(gè)關(guān)鍵字為分割元素,通過一次劃分后結(jié)果為()。A.30,50,48,56,66,89,94,100,87B.50,30,48,56,66,89,94,87,100C.48,30,50,56,66,89,94,87,100D.50,30,48,66,56,89,94,87,10028.設(shè)有一個(gè)10階的對(duì)稱矩陣A,采用壓縮存儲(chǔ)的方式,將其下三角部分以行序?yàn)橹鞔鎯?chǔ)到一維數(shù)組B中(數(shù)組下標(biāo)從1開始),則矩陣中元素A8,5在一維數(shù)組B中的下標(biāo)是()。A.33B.32C.8529.線性表以()方式存儲(chǔ),能進(jìn)行折半查找。A.關(guān)鍵字有序的鏈接B.順序C.關(guān)鍵字有序的順序D.數(shù)組C.多對(duì)多D.每一個(gè)元素都有一個(gè)直接前驅(qū)和一個(gè)直接后繼30.在一個(gè)無向圖中,所有頂點(diǎn)的度數(shù)之和等于邊數(shù)的()倍。A.3B.2.5C二、填空題1.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表達(dá)稱為________結(jié)構(gòu)。2.棧和隊(duì)列的操作特點(diǎn)分別是____(dá)___和_______(dá)_。3.求兩個(gè)n階矩陣的乘積,算法的基本操作為___(dá)___(dá)__,時(shí)間復(fù)雜度為_____(dá)___。4.結(jié)構(gòu)中的數(shù)據(jù)元素存在多對(duì)多的關(guān)系稱為___(dá)_____結(jié)構(gòu)。5.設(shè)有一個(gè)長度為25的順序表,第8號(hào)元素到第25號(hào)元素依次存放的值為8,9,10,11,…25,某人想要在第8個(gè)元素前插入1個(gè)元素7(也就是插入元素作為新表的第8個(gè)元素),他的做法是從第8號(hào)元素開始,直到第25號(hào)元素依次向后移動(dòng)1個(gè)位置,然后把7存放在8號(hào)位置,其結(jié)果是新表中第25號(hào)元素的值為_____。6.根據(jù)數(shù)據(jù)元素間關(guān)系的不同特性,通??煞譃榧?、線性、、四類基本結(jié)構(gòu)。7.在雙向鏈表中,要在p所指的結(jié)后插入q所指的結(jié)點(diǎn)(設(shè)q所指的結(jié)點(diǎn)已賦值),其中所用的一條語句(p->next)->prior=q;的功能是使P所指結(jié)點(diǎn)的____(dá)__(dá)_指向q。8.規(guī)定在n個(gè)數(shù)據(jù)元素中找其中值最大的元素,設(shè)基本操作為元素間的比較。則比較的次數(shù)和算法的時(shí)間復(fù)雜度分別為______(dá)__(dá)和______(dá)__。9.設(shè)有一個(gè)帶頭結(jié)點(diǎn)的,頭指針為head的單向鏈表,p指向表中某一個(gè)結(jié)點(diǎn),且有p->next==NULL,現(xiàn)要?jiǎng)h除頭結(jié)點(diǎn),并使該單向鏈表構(gòu)導(dǎo)致單向循環(huán)鏈表,通過操作head=head->next;____(dá)___(dá)_。10.在一個(gè)單向鏈表中p所指結(jié)點(diǎn)之后插入一個(gè)s所指向的結(jié)點(diǎn)時(shí),應(yīng)執(zhí)行_____(dá)__(dá)_和p->next=s;的操作。11.從一個(gè)棧頂指針為top的鏈棧中刪除一個(gè)結(jié)點(diǎn)時(shí),用d保存被刪結(jié)點(diǎn)的值,可執(zhí)行_____(dá)___。(結(jié)點(diǎn)的指針域?yàn)閚ext,數(shù)據(jù)域?yàn)閐at(yī)a)12.在二叉樹的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,通常每個(gè)結(jié)點(diǎn)中設(shè)立三個(gè)域,它們是值域、。13循環(huán)鏈隊(duì)列中,設(shè)front和rear分別為隊(duì)頭和隊(duì)尾指針,(最多元素為MaxSize,采用少用一個(gè)元素的模式),判斷循環(huán)鏈隊(duì)列為滿的條件為__(dá)______。14.一棵二叉樹中順序編號(hào)為i的結(jié)點(diǎn),若它存在左、右孩子,則左、右孩子編號(hào)分別為_____(dá)___、__(dá)______。15.對(duì)稀疏矩陣進(jìn)行壓縮存儲(chǔ),可采用三元組表,一個(gè)6行7列的稀疏矩陣A相應(yīng)的三元組表共有8個(gè)元素,則矩陣A共有______(dá)_個(gè)零元素。16.向一個(gè)棧頂指針為h的鏈棧中插入一個(gè)s所指結(jié)點(diǎn)時(shí),可執(zhí)行s->next=h;和_____(dá)___(dá)。17.一棵有20個(gè)結(jié)點(diǎn)的4度的樹,其中3度結(jié)1個(gè),2度結(jié)1個(gè),1度結(jié)2個(gè),則該樹共有____(dá)___個(gè)葉結(jié)點(diǎn)。18.在一個(gè)鏈隊(duì)中,設(shè)f和r分別為隊(duì)頭和隊(duì)尾指針,則插入s所指結(jié)點(diǎn)的操作為______(dá)__和r=s;(結(jié)點(diǎn)的指針域?yàn)閚ext)19.一棵有18個(gè)結(jié)點(diǎn)的二叉樹,其2度結(jié)點(diǎn)數(shù)的個(gè)數(shù)為8,則該樹共有__(dá)____(dá)_個(gè)1度結(jié)點(diǎn)20.設(shè)有一棵深度為4的完全二叉樹,第四層上有5個(gè)結(jié)點(diǎn),該樹共有______(dá)__(dá)_個(gè)結(jié)點(diǎn)。(根所在結(jié)點(diǎn)為第1層)21.如圖2所示的二叉樹,其先序遍歷序列為____(dá)__(dá)__(dá)_。3c7g3c7gd65e4dc2b18hd9圖222.對(duì)稀疏矩陣進(jìn)行壓縮存儲(chǔ),矩陣中每個(gè)非零元素相應(yīng)的三元組涉及該元素的____(dá)___、____(dá)___(dá)和_______三項(xiàng)信息。23.在查找表中,通過記錄的某關(guān)鍵字能唯一地?cái)M定一個(gè)記錄,該關(guān)鍵字稱為___(dá)______。24.在對(duì)一組記錄(55,39,97,22,16,73,65,47,88)進(jìn)行直接插入排序時(shí),當(dāng)把第7個(gè)記錄65插入到有序表時(shí),為尋找插入位置需比較_________次。三、綜合題1.(1)對(duì)給定權(quán)值3,1,4,4,5,6,構(gòu)造深度為5的哈夫曼樹。(設(shè)根為第1層)(2)求樹的帶權(quán)途徑長度。(3)鏈接存儲(chǔ)上述哈夫曼樹,結(jié)點(diǎn)中共有多少個(gè)個(gè)指針域?yàn)榭?說明理由.2.(1)以2,3,4,7,8,9作為葉結(jié)點(diǎn)的權(quán),構(gòu)造一棵哈夫曼樹(規(guī)定每個(gè)結(jié)點(diǎn)的左子樹根結(jié)點(diǎn)的權(quán)小于等于右子樹根結(jié)點(diǎn)的權(quán)),給出相應(yīng)權(quán)重值葉結(jié)點(diǎn)的哈夫曼編碼。(2)一棵哈夫曼樹有n個(gè)葉結(jié)點(diǎn),它一共有多少個(gè)結(jié)點(diǎn)?簡述理由?3.(1)如下的一棵樹,給出先序遍歷序列(2)把1,2,3,4,5,6,7,8,9填人,使它成為一棵二叉排序樹提醒:設(shè)圖中的樹是二叉排序樹,找出中序遍歷序列與1,2,…9的相應(yīng)關(guān)系(3)請(qǐng)?jiān)谠摌渲性俨迦胍粋€(gè)結(jié)點(diǎn)3.5作為葉結(jié)點(diǎn),并使它仍然是一棵二叉排序樹。AA1A2A43A7A5A9A8A3A6圖34.一組記錄的關(guān)鍵字序列為(46,79,56,38,40,84)(1)運(yùn)用快速排序的方法,給出以第一個(gè)記錄為基準(zhǔn)得到的一次劃分結(jié)果(給出逐次互換元素的過程,規(guī)定以升序排列)(2)對(duì)上述序列用堆排序的方法建立大根堆,規(guī)定以二叉樹逐次描述建堆過程。5.設(shè)查找表為(5,6,7,8,9,10,11,12,13,14)(1)畫出對(duì)上述有序表進(jìn)行折半查找所相應(yīng)的鑒定樹(規(guī)定以數(shù)據(jù)元素作為樹結(jié)點(diǎn))(2)給出二叉排序樹的定義,針對(duì)上述折半查找所相應(yīng)的鑒定樹的構(gòu)造過程,說明鑒定樹是否是二叉排序樹(設(shè)樹中沒有相同結(jié)點(diǎn))?(3)為了查找元素5.5,通過多少次元素間的比較才干擬定不能查到?6.設(shè)查找表為(50,60,75,85,96,98,105,110,120,130)(1)說出進(jìn)行折半查找成功查找到元素120需要進(jìn)行多少次元素間的比較?(2)為了折半查找元素95,通過多少次元素間的比較才干擬定不能查到?(3)畫出對(duì)上述有序表進(jìn)行折半查找所相應(yīng)的鑒定樹(規(guī)定以數(shù)據(jù)元素作為樹結(jié)點(diǎn))四、程序填空題1.以下函數(shù)為直接選擇排序算法,對(duì)a[1],a[2],…a[n]中的記錄進(jìn)行直接選擇排序,完畢程序中的空格typedefstruct{intkey;……}NODE;voidselsort(NODEa[],intn){?inti,j,k; NODEtemp; for(i=1;i<=___(1)_____;i++) {??k=i;? for(j=i+1;j<=__(dá)_(2)__(dá)__(dá)_;j++) ? if(a[j].key<a[k].key)__(3)______(dá);? if(i!=k) {?? temp=a[i];? ?___(4)____(dá)_; ??____(dá)(5)____;??}?}}2.以下是用尾插法建立帶頭結(jié)點(diǎn)且有n個(gè)結(jié)點(diǎn)的單向鏈表的程序,結(jié)點(diǎn)中的數(shù)據(jù)域從前向后依次為1,2,3,……,n,完畢程序中空格部分。NODE*create(n){NODE*head,*p,*q;inti;p=(NODE*)malloc(sizeof(NODE));head=(1);(2);pnext=NULL;/*建立頭結(jié)點(diǎn)*/for(i=1;i<=n;i++){p=(3);pdata=i;pnext=NULL;qnext=(4);(5);}return(head);}3.設(shè)有一個(gè)頭指針為head的不帶頭結(jié)點(diǎn)單向鏈表,且p、q是指向鏈表中結(jié)點(diǎn)類型的指針變量,p指向鏈表中某結(jié)點(diǎn)a(設(shè)鏈表中沒有結(jié)點(diǎn)的數(shù)據(jù)域與結(jié)點(diǎn)a的數(shù)據(jù)域相同),寫出相關(guān)語句(1).使該單向鏈表成為單向循環(huán)鏈表(2)刪去a結(jié)點(diǎn)q=p;x=p->data;while(q->next!=NULL)q=q->next;__(1)___(dá)q=p;p=p->next;while(p->data!=x){q=p;__(2)___}__(dá)(3)___(dá)4.以下程序是中序遍歷二叉樹的遞歸算法的程序,完畢程序中空格部分(樹結(jié)構(gòu)中左、右指針域分別為left和right,數(shù)據(jù)域data為字符型,BT指向根結(jié)點(diǎn))。voidInorder(structBTreeNode*BT){if(BT!=NULL){(1);(2);(3);}}期末復(fù)習(xí)一答案一、單項(xiàng)選擇題1.C2.B3.A4.C5.A6.D7.C8.A9.D10.D11.C12.C13.C14.B15.D16.C17.C18.A19.B20.C21.A22.A23.B24.B25.C26.C27.B28.A29.C30.D二、填空題1.物理(存儲(chǔ))2.后進(jìn)先出、先進(jìn)先出3.乘法O(n3)4.圖狀(網(wǎng)狀)5.86.樹形圖狀7.直接前驅(qū)的左指針8.n-1,O(n)、9.p->next=head;10.s->next=p->next;11.d=top->data;top=top->next;12.左指針右指針13.front==(rear+1)%MaxSize14.2i2i+115.3416.h=s;17.1318.r->next=s;19.120.1221.22.行下標(biāo)、列下標(biāo)、非零元素值23.主關(guān)鍵字24.3三、綜合應(yīng)用題654365435423418145197896434531213圖4(2)WPL=3*4+1*4+4*3+6*2+4*2+5*2=58(3)共11個(gè)結(jié)點(diǎn),22個(gè)指針域,除根結(jié)點(diǎn)外,每個(gè)結(jié)點(diǎn)相應(yīng)一個(gè)指針域.,共10個(gè)指針域非空,故有22-10=12個(gè)空指針域,2.3333(1)151815187998799854543232圖52:11103:11114:1107:008:019:10(2)2n-1個(gè),由于非葉結(jié)點(diǎn)數(shù)比葉結(jié)點(diǎn)數(shù)少一個(gè)。3.(1)A1A2A(2)(3)77421563893.5圖64.(1)初始序列46,79,56,38,40,8440,79,56,38,40,8440,79,56,38,79,8440,38,56,38,79,8440,38,56,56,79,8440,38,46,56,79,8456795679384084468479384046566567938404679384084845646圖65.(1)9971014118512136圖7(2)二叉排序樹或者是一棵空樹,或者是一棵具有下列性質(zhì)的二叉排:若它的左子樹非空,則左子樹的所有結(jié)點(diǎn)的值都小于它的根結(jié)點(diǎn)的值;若它的右子樹非空,則右子樹的所有結(jié)點(diǎn)的值都大于(若允許結(jié)點(diǎn)有相同的值,則大于等于)它的根結(jié)點(diǎn)的值;左,右子樹也是一棵二叉排序樹,按定義鑒定樹是二叉排序樹。(3)3次6.(1)3次(2)4次(3)9696759813010585501100512060圖8四、程序填空題1.(1)n-1(2)n(3)k=j(4)a[i]=a[k](5)a[k]=temp2.(1)p(2)q=p(3)(NODE*)malloc(sizeof(NODE))(4)p(5)q=p3.q->next=head;p=p->next;q->next=p->next;4.(1)Inorder(BT->left)(2)printf(“%c”,BT->data)(3)Inorder(BT->right)期末練習(xí)二一、單項(xiàng)選擇題1.結(jié)構(gòu)中的元素之間存在一對(duì)多的關(guān)系是()。A.集合B.線性結(jié)構(gòu)C.樹形結(jié)構(gòu)D.圖狀結(jié)構(gòu)2.在C語言中,順序存儲(chǔ)長度為3的字符串,需要占用()個(gè)字節(jié)。A.4B.3C.6D.123.對(duì)不帶頭結(jié)點(diǎn)的單向鏈表,判斷是否為空的條件是()(設(shè)頭指針為head)。A.head==NULLB.head->next==NULLC.head->next==headD.head=NULL4.串函數(shù)StrCat(yī)(a,b)的功能是進(jìn)行串()。A.比較B.復(fù)制C.賦值D.連接5.在一個(gè)不帶頭結(jié)點(diǎn)的單循環(huán)鏈表中,p、q分別指向表中第一個(gè)結(jié)點(diǎn)和尾結(jié)點(diǎn),現(xiàn)要?jiǎng)h除第一個(gè)結(jié)點(diǎn),可用的語句是()。A.p=q->next;p=p->next;B.p->next=q;p=p->next;C.p->next=q->next;q=p;D.p=p->next;q->next=p;6.一棵有n個(gè)結(jié)點(diǎn)采用鏈?zhǔn)酱鎯?chǔ)的二叉樹中,共有()個(gè)指針域?yàn)榭?。A.n+1B.nC.n-1D.n-27.一個(gè)棧的進(jìn)棧序列是1,2,3,4,5,則棧的不也許輸出序列是()(進(jìn)棧出棧可以交替進(jìn)行)。A.12345B.43512C.45321D.543218.設(shè)一棵哈夫曼樹共有n個(gè)非葉結(jié)點(diǎn),則該樹有()個(gè)葉結(jié)點(diǎn)。A.nB.n+1C.n-1D.2n9.一個(gè)隊(duì)列的入隊(duì)序列是2,4,6,8,按該隊(duì)列的輸出序列使各元素依次入棧,該棧的也許輸出序列是()。A.8,6,4,2B.6,2,4,8C.8,4,2,6D.8,2,4,610.從一個(gè)棧頂指針為top的鏈棧中刪除一個(gè)結(jié)點(diǎn)時(shí),用變量x保存被刪結(jié)點(diǎn)的值,則執(zhí)行()。A.x=top->data;top=topnext;B.x=top->data;C.top=top->next;x=top->data;D.top=top->next;x=data;11.在一個(gè)鏈隊(duì)中,假設(shè)f和r分別為隊(duì)頭和隊(duì)尾指針,已生成一個(gè)結(jié)點(diǎn)p,要為結(jié)點(diǎn)p賦值x,并入隊(duì)的運(yùn)算為()。A.p->data=x;p->next=NULL;f->next=p;f=p;B.p->data=x;p->next=NULL;r->next=p;r=p;C.p->data=x;p->next=r;r=s;D.p->dat(yī)a=x;p->next=f;f=s;12.一棵完全二叉樹共有5層,且第5層上有六個(gè)結(jié)點(diǎn),該樹共有()個(gè)結(jié)點(diǎn)。A.30B.20C.21D.2313.設(shè)有一個(gè)25階的對(duì)稱矩陣A,采用壓縮存儲(chǔ)的方式,將其下三角部分以行序?yàn)橹餍虼鎯?chǔ)到一維數(shù)組B中(數(shù)組下標(biāo)從1開始),則矩陣中元素.a7,6在一維數(shù)組B中的下標(biāo)是()。A.34B.14C.26D.2714.在一個(gè)無向圖中,所有頂點(diǎn)的度數(shù)之和等于邊數(shù)的()倍。A.3B.2.5C.1.5D.215.以下程序段的結(jié)果是c的值為()。chara[5]=“1236789”while(*p++)c++;A.8,B.7C.10D.1216.已知如圖1所示的一個(gè)圖,若從頂點(diǎn)V1出發(fā),按深度優(yōu)先搜索法進(jìn)行遍歷,則也許得到的一種頂點(diǎn)序列為()。A.V1V2V4V8V5V3V6V7B.V1V2V4V5V8V3V6V7C.V1V2V4V8V3V5V6V7D.V1V3V6V7V2V4V5V8VV6V7V1V2V3V8V4V5圖117.一棵有23個(gè)結(jié)點(diǎn),采用鏈?zhǔn)酱鎯?chǔ)的二叉樹中,共有()個(gè)指針域?yàn)榭?。A.24B.25C.23D.4518.已知如圖2所示的一個(gè)圖,若從頂點(diǎn)a出發(fā),按廣度優(yōu)先搜索法進(jìn)行遍歷,則也許得到的一種頂點(diǎn)序列為()。A.abcedfB.abcefdC.a(chǎn)ebcfdD.acfdebbdbdfeca圖219.在一棵二叉樹中,若編號(hào)為i的結(jié)點(diǎn)是其雙親結(jié)點(diǎn)的左孩子,則雙親結(jié)點(diǎn)的順序編號(hào)為()。A.i/2B.2i-1C.2i+1D.i/2-120.對(duì)二叉排序樹進(jìn)行()遍歷,可以使遍歷所得到的序列是有序序列。A.按層次B.后序C.中序D.前序21.設(shè)一棵哈夫曼樹共有2n+1個(gè)葉結(jié)點(diǎn),則該樹有()個(gè)葉結(jié)點(diǎn)。A.n-1B.nC.n+1D.2n22.在有序表{2,4,7,14,34,43,47,64,75,80,90,97,120}中,用折半查找法查找值80時(shí),經(jīng)()次比較后查找成功。A.4B.2C.3D.523.已知如圖3所示的一個(gè)圖,若從頂點(diǎn)a出發(fā),按深度優(yōu)先搜索法進(jìn)行遍歷,則也許得到的一種頂點(diǎn)序列為()。A.abecdfB.a(chǎn)cfebdC.aebcfdD.a(chǎn)edbfcbbdfeca圖324.有一個(gè)長度為9的有序表,按折半查找對(duì)該表進(jìn)行查找,在等概率情況下查找成功的平均比較次數(shù)為()。A.25/10B.25/9C.20/9D.17/925.已知如圖4所示的一個(gè)圖,若從頂點(diǎn)B出發(fā),按廣度優(yōu)先法進(jìn)行遍歷,則也許得到的一種頂點(diǎn)序列為()。A.BADEHCFGB.ADEHCGFC.BADECHFGD.BADEHCFGFFGV7ABCHV8DV4E圖426.排序算法中,從未排序序列中依次取出元素與已排序序列(初始為空)中的元素進(jìn)行比較(規(guī)定比較次數(shù)盡量少),然后將其放入已排序序列的對(duì)的位置的方法是()。A.冒泡B.直接插入C.折半插入D.選擇排序27.一組記錄的關(guān)鍵字序列為(46,38,56,40,79,84),運(yùn)用快速排序,以第一個(gè)關(guān)鍵字為分割元素,通過一次劃分后結(jié)果為()。A.40,38,46,79,56,84B.40,38,46,56,79,84C.40,38,46,84,56,79D.38,40,46,56,79,8428.一組記錄的關(guān)鍵字序列為(46,79,56,38,40,84),運(yùn)用快速排序,以第一個(gè)關(guān)鍵字為分割元素,通過一次劃分后結(jié)果為()。A.40,38,46,79,56,84B.40,38,46,56,79,84C.40,38,46,84,56,79D.38,40,46,56,79,8429.在有序表{21,23,28,33,43,45,46,73,77,78,89,99,106}中,用折半查找值43時(shí),經(jīng)()次比較后查找成功。A.6B.3C.8D.430.排序方法中,從尚未排序序列中挑選元素,并將其依次放入已排序序列(初始為空)的一端的方法,稱為()排序。A.歸并B.插入C.快速D.選擇二、填空題1.本書中介紹的樹形結(jié)構(gòu)和_____(dá)__屬非線性結(jié)構(gòu)。2.在二叉樹的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,通常每個(gè)結(jié)點(diǎn)中設(shè)立三個(gè)域,它們是_______(dá)、、右指針。3.設(shè)有一個(gè)長度為18的順序表,要在第4個(gè)元素之前插入2個(gè)元素(也就是插入元素作為新表的第5個(gè)和第4個(gè)元素),則最少要移動(dòng)元素的個(gè)數(shù)為()。4.一棵二叉樹中順序編號(hào)為i的結(jié)點(diǎn),若它存在左、右孩子,則左、右孩子編號(hào)分別為__(dá)____、__(dá)__(dá)____(dá)。5.在雙向鏈表中,要?jiǎng)h除p所指的結(jié)點(diǎn),可以先用語句(p->prior)->next=p->next;然再用語句________。6.串的兩種最基本的存儲(chǔ)方式是________(dá)和_____(dá)___。7.在一個(gè)單向鏈表中p所指結(jié)點(diǎn)之后插入一個(gè)s所指向的結(jié)點(diǎn)時(shí),應(yīng)執(zhí)行s->next=p->next;和_______的操作.8.一棵有2n-1個(gè)結(jié)點(diǎn)的二叉樹,其每一個(gè)非葉結(jié)點(diǎn)的度數(shù)都為2,則該樹共有____(dá)___個(gè)葉結(jié)點(diǎn)。9.一個(gè)棧和一個(gè)隊(duì)列的輸入序列都為abcdefg,它們也許有相同的輸出序列嗎?_________。(若沒有則回答沒有,若有則寫出序列,進(jìn)棧出棧可以交替進(jìn)行)。10.對(duì)于一棵具有n個(gè)結(jié)點(diǎn)的二叉樹,其相應(yīng)的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中共有________個(gè)指針域?yàn)榭铡?1.從一個(gè)棧頂指針為top的鏈棧中取棧頂元素,用d保存棧頂元素的值,可執(zhí)行___(dá)_____。(結(jié)點(diǎn)的數(shù)據(jù)域?yàn)閐ata)12.___(dá)__(dá)___(dá)遍歷二叉排序樹可得到一個(gè)有序序列。13.循環(huán)鏈隊(duì)列中,設(shè)front和rear分別為隊(duì)頭和隊(duì)尾指針,(最多元素為MaxSize,),判斷循環(huán)鏈隊(duì)列為空的條件是___(dá)___(dá)__(dá)為真。14.如圖5所示的二叉樹,其后序遍歷序列為。eefgibachd圖515.對(duì)稀疏矩陣進(jìn)行壓縮存儲(chǔ),可采用三元組表,設(shè)a是稀疏矩陣A相應(yīng)的三元組表類型(結(jié)構(gòu)體類型)變量,a中的一個(gè)成員項(xiàng)是三元組類型的結(jié)構(gòu)體數(shù)組data,按書中定義,若a.data[0].i=2;a.data[0].j=3;a.dat(yī)a[0].v=16;它提供的A數(shù)組的相關(guān)信息有_____(dá)__16.如圖6所示的二叉樹,其先序遍歷序列為___(dá)______。ggfabdec圖617.設(shè)有一棵深度為5的完全二叉樹,該樹共有20個(gè)結(jié)點(diǎn),第五層上有個(gè)葉結(jié)點(diǎn)。(根所在結(jié)點(diǎn)為第1層)18.圖的深度優(yōu)先搜索和廣度優(yōu)先搜索序列不一定是唯一的。此斷言是______(dá)的。(回答對(duì)的或不對(duì)的)19.中序遍歷________樹可得到一個(gè)有序序列。20.二叉樹為二叉排序的充足必要條件是其任一結(jié)點(diǎn)的值均大于其左孩子的值、小于其右孩子的值。這種說法是__(dá)________(dá)的。(回答對(duì)的或不對(duì)的)21.如圖7所示的二叉樹,其后序遍歷序列為_____(dá)____。3c3c7gd6f5e4dc2b1a8hd9圖722.對(duì)記錄序列排序是指按記錄的某個(gè)關(guān)鍵字排序,記錄序列按___(dá)__(dá)__(dá)__排序結(jié)果是唯一的。23.給定一組權(quán)重值,構(gòu)造哈夫曼樹,哈夫曼樹的高度一定是唯一的,這種說法是____(dá)______的。(回答對(duì)的或不對(duì)的)24.按某關(guān)鍵字對(duì)記錄序列排序,若在排序前和排序后仍保持它們的前后關(guān)系,則排序算法是穩(wěn)定的,否則是不穩(wěn)定的。三、綜合題1.(1)說明什么是頂點(diǎn)活動(dòng)網(wǎng)(AOV網(wǎng))和拓?fù)湫蛄?2)設(shè)有向圖G如下,寫出3種拓?fù)湫蛄?(3)在圖G中增長一條邊,使圖G僅有一條拓?fù)湫蛄衋abcd圖82.設(shè)查找表為(16,15,20,53,64,7),(1)用冒泡法對(duì)該表進(jìn)行排序(規(guī)定升序排列),寫出每一趟的排序過程,通常對(duì)n個(gè)元素進(jìn)行冒泡排序要進(jìn)行多少趟冒泡?第j趟要進(jìn)行多少次元素間的比較?(2)在排序后的有序表的基礎(chǔ)上,畫出對(duì)其進(jìn)行折半查找所相應(yīng)的鑒定樹.(規(guī)定以數(shù)據(jù)元素作為樹結(jié)點(diǎn))3.如下是一棵二叉排序樹,A1,A2,…A9代表1,2,3,…9中各個(gè)不同數(shù)字,(1)給出對(duì)該樹中序遍歷的結(jié)果(2)A3,A5,A7的值各為多少?(3)請(qǐng)?jiān)谠摌渲性俨迦胍粋€(gè)結(jié)點(diǎn)9.5作為葉結(jié)點(diǎn),并使它仍然是一棵二叉排序樹AA1A2A4A7A5A9A8A3A6圖94.(1)設(shè)有查找表{5,14,2,6,18,7,4,16,3},依次取表中數(shù)據(jù),構(gòu)造一棵二叉排序樹。(2)說明如何由序列的二叉排序樹得到相應(yīng)序列的排序結(jié)果,對(duì)上述二叉排序給出中序遍歷的結(jié)果。5.(1)設(shè)有查找表{17,26,14,16,15,30,18,19,28},依次取表中數(shù)據(jù)構(gòu)造一棵二叉排序樹.(2)對(duì)上述二叉樹給出后序遍歷的結(jié)果(3).對(duì)上述二叉樹給出中后序遍歷的結(jié)果(4))在上述二叉樹中查找元素15共要進(jìn)行多少次元素的比較?6.(1)對(duì)給定權(quán)值2,1,3,3,4,5,構(gòu)造哈夫曼樹。(2)同樣用上述權(quán)值構(gòu)造另一棵哈夫曼樹,使兩棵哈夫曼樹有不同的高度,并分別求兩棵樹的帶權(quán)途徑長度。四、程序填空題1.以下函數(shù)是二叉排序樹的查找算法,若二叉樹為空,則返回根結(jié)點(diǎn)的指針,否則,返回值是指向樹結(jié)點(diǎn)的結(jié)構(gòu)指針p(查找成功p指向查到的樹結(jié)點(diǎn),不成功p指向?yàn)镹ULL)完畢程序中的空格typedefstructBnode{intkey;structBnode*left;structBnode*right;}Bnode;Bnode*BSearch(Bnode*bt,intk)/*bt用于接受二叉排序樹的根結(jié)點(diǎn)的指針,k用以接受要查找的關(guān)鍵字*/{Bnode*p;if(bt==___(1)____(dá)_)return(bt);p=bt;while(p->key!=__(2)______) ?{if(k<p->key)??___(3)____(dá)_;else___(dá)(4)__(dá)___;?if(p==NULL)break;}return(___(5)_____);}}3.設(shè)有一個(gè)頭指針為head的不帶頭結(jié)點(diǎn)單向鏈表,p、q是指向鏈表中結(jié)點(diǎn)類型的指針變量,p指向鏈表中結(jié)點(diǎn)a,(設(shè)鏈表中沒有結(jié)點(diǎn)的數(shù)據(jù)域與結(jié)點(diǎn)a的數(shù)據(jù)域相同),寫出相關(guān)語句(1).使該單向鏈表成為單向循環(huán)鏈表(2)插入結(jié)點(diǎn)s,使它成為a結(jié)點(diǎn)的直接前驅(qū)q=p;x=p->data;while(__(1)__(dá)_)q=q->next;q->next=head;q=p;p=p->next;while(p->data!=x){q=p;__(2)__(dá)_}s->next=p;__(3)___(dá)答案一、單項(xiàng)選擇題1.C2.A3.A4.D5.D6.A7.B8.B9.A10.A11.B12.C13.D14.D15.B16.A17.A18.B19.A20.C21.C22.A23.D24.B25.C26.C27.B28.B29.B30.D二、填空題1.圖狀結(jié)構(gòu)2.值域左指針3.154.2i和2i+15.(p->next)->prior=p->prior;6.順序存儲(chǔ)鏈?zhǔn)酱鎯?chǔ)7.p->next=s;8.n9.abcdefg10.n+111.d=top->data;12.中序13.front==rear14.gdbeihfca15.A的第一個(gè)非零元素的下標(biāo)為2,3,元素為1616.abdefcg17.518.對(duì)的19.二叉排序20.不對(duì)的21.22.主關(guān)鍵字23.不對(duì)的24.關(guān)鍵字相等的記錄三、綜合應(yīng)用題1.(1)原序列1615205364715162053764n-1趟15162075364n-j次15167205364157162053647151620536471571520641653圖102.(1)原序列1615205364715162053764n-1-j次15167205364157162053647151620536471571520641653圖11(3)平均查找長度=(1*1+2*2+3*3)/6=14/63.24246167318514圖12(2)中序遍歷中序2,3,4,5,6,7,14,16,184.(1)2246167318514圖13(2)中序遍歷中序2,3,4,5,6,7,14,16,185.535341811763312wpl1=451871871131233465圖15wpl2=45535341811763312wpl1=45四、程序填空題1.(1)NULL(2)k(3)p=p->left(4)p=p->right(5)p2.(1)&a(2)dnext=NULL(3)p->data(4)p=p->next(5)p!=NULL3.(1)q->next!=NULL(2)p=p->next;(3)q->next=s;4.(1)Postorder(BT->left)(2)Postorder(BT->right)(3)printf(“%c”,BT->data)期末練習(xí)三一、單項(xiàng)選擇題1.?dāng)?shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)內(nèi)存中的表達(dá)是指()。A.數(shù)據(jù)元素之間的關(guān)系B.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)C.?dāng)?shù)據(jù)元素的類型D.數(shù)據(jù)的邏輯結(jié)構(gòu)2.在數(shù)據(jù)結(jié)構(gòu)和算法中,與所使用的計(jì)算機(jī)有關(guān)的是()。A.數(shù)據(jù)元數(shù)間的抽象關(guān)系B.?dāng)?shù)據(jù)的存儲(chǔ)結(jié)構(gòu)C.算法的時(shí)間復(fù)雜度D.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)3.結(jié)構(gòu)中的元素之間存在多對(duì)多的關(guān)系是()。A.集合B.線性結(jié)構(gòu)C.樹形結(jié)構(gòu)D.圖狀結(jié)構(gòu)4.對(duì)順序表,以下敘述中對(duì)的的是()。A.用一組地址連續(xù)的存儲(chǔ)單元依次存放線性表的數(shù)據(jù)元素B.各個(gè)數(shù)據(jù)元素的首地址是連續(xù)的C.數(shù)據(jù)元素不能隨機(jī)訪問D.插入操作不需要移動(dòng)元素5.設(shè)有一個(gè)長度為20的順序表,要在第5個(gè)元素之前插入1個(gè)元素(也就是插入元素作為新表的第5個(gè)元素),則移動(dòng)元素個(gè)數(shù)為()。A.15B.16C.5D.6.設(shè)有一個(gè)長度為25的順序表,要?jiǎng)h除第10個(gè)元素(下標(biāo)從1開始),需移動(dòng)元素的個(gè)數(shù)為()。A.9B.10C.15D.7.在一個(gè)尾指針為rear的不帶頭結(jié)點(diǎn)的單循環(huán)鏈表中,插入一個(gè)s所指的結(jié)點(diǎn),并作為第一個(gè)結(jié)點(diǎn),可執(zhí)行()。A.rearnext=s;snext=rearnextB.rearnext=snext;C.rear=snextD.snext=rearnext;rearnext=s;8.設(shè)單向鏈表中,指針p指向結(jié)點(diǎn)A,若要?jiǎng)h除A的直接后繼,則所需修改指針的操作為()。A.p->next=p->next->next;?B.p=p->next;C.p=p->next->next; D.p->next=p;9.元素a,b,c,d按順序依次進(jìn)棧,則該棧的也許輸出序列是()(進(jìn)棧出棧可以交替進(jìn)行)。A.c,a,b,dB.d,b,c,aC.a,c,b,dD.d,c,a,b10.元素1,3,5,7按順序依次進(jìn)棧,按該棧的也許輸出序列依次入隊(duì)列,該隊(duì)列的也許輸出序列是()。(進(jìn)棧出??梢越惶孢M(jìn)行)。A.7,5,3,1B.7,3,1,5C.7,5,1,3D.5,1,3,711.從一個(gè)棧頂指針為top的鏈棧中取棧頂元素,用變量x保存該元素的值,則執(zhí)行()。A.x=top->data;top=topnext;B.x=top->dat(yī)a;C.top=top->next;x=top->data;D.top=top->next;x=data;12.對(duì)一個(gè)棧頂指針為top的鏈棧進(jìn)行進(jìn)棧操作,設(shè)P為待進(jìn)棧的結(jié)點(diǎn),則執(zhí)行()。A.p=top->next;top=topnext;B.p->next=top;C.p->next=top;top=p;D.top=p;13.設(shè)有一個(gè)對(duì)稱矩陣A,采用壓縮存儲(chǔ)的方式,將其下三角部分以行序?yàn)橹餍虼鎯?chǔ)到一維數(shù)組B中(數(shù)組下標(biāo)從1開始),B數(shù)組共有55個(gè)元素,則該矩陣是()階的對(duì)稱矩陣。A.5B.20C.10D.1514.設(shè)有一個(gè)18階的對(duì)稱矩陣A,采用壓縮存儲(chǔ)的方式,將其下三角部分以行序?yàn)橹餍虼鎯?chǔ)到一維數(shù)組B中(數(shù)組下標(biāo)從1開始),則數(shù)組中第33號(hào)元素相應(yīng)于矩陣中的元素是()。B.a7,6A.a10,8C.a9,215.設(shè)有一個(gè)18階的對(duì)稱矩陣A,采用壓縮存儲(chǔ)的方式,將其下三角部分以行序?yàn)橹餍虼鎯?chǔ)到一維數(shù)組B中(數(shù)組下標(biāo)從1開始),則數(shù)組中第53號(hào)元素相應(yīng)于矩陣中的元素是()。A.a(chǎn)8,5,B.a(chǎn)10,8C.a8,1,D.a7,616.設(shè)有一個(gè)17階的對(duì)稱矩陣A,采用壓縮存儲(chǔ)的方式,將其下三角部分以行序?yàn)橹餍虼鎯?chǔ)到一維數(shù)組B中(數(shù)組下標(biāo)從1開始),則矩陣中元素a16在一維數(shù)組B中的下標(biāo)是()。A.45,B.18C17.以下程序段的結(jié)果是c的值為()。char*a[5]={“12378”,“1237”,“1236789”,“1237”,inti,c=0;for(i=0;i<5:i++)if(StrCmp(a[i],“1237”A.2,B.5C.0D.123718.串函數(shù)StrCmp(“ABCd”,“ABCD”)的值為()。A.0B.-119.一棵采用鏈?zhǔn)酱鎯?chǔ)的二叉樹中,共有n個(gè)指針域被有效使用(即指針域?yàn)榉强眨?。該二叉樹?)個(gè)結(jié)點(diǎn)。A.n+1B.nC.n-1D.n-220.一棵采用鏈?zhǔn)酱鎯?chǔ)的二叉樹中有n個(gè)指針域?yàn)榭?該二叉樹共有()個(gè)結(jié)點(diǎn)。A.n+1B.nC.n-1D.n-221.在一棵二叉樹中,若編號(hào)為i的結(jié)點(diǎn)是其雙親結(jié)點(diǎn)的右孩子,則雙親結(jié)點(diǎn)的順序編號(hào)為()。A.i/2.0B.i/2+1C.2i+122.設(shè)一棵哈夫曼樹共有n個(gè)非葉結(jié)點(diǎn),則該樹有()個(gè)結(jié)點(diǎn)。A.2nB.2n+2C.2n-1D.2n+123.設(shè)一棵采用鏈?zhǔn)酱鎯?chǔ)的二叉樹,除葉結(jié)點(diǎn)外每個(gè)結(jié)點(diǎn)度數(shù)都為2,該樹結(jié)點(diǎn)中共有2n個(gè)指針域?yàn)榭?。則該樹有()個(gè)葉結(jié)點(diǎn)。A.2nB.2n+1C24.一棵結(jié)點(diǎn)數(shù)31<n<40的完全二叉樹,最后一層有4個(gè)結(jié)點(diǎn),則該樹有()個(gè)葉結(jié)點(diǎn)A.18B.17C.3625.已知如圖1所示的一個(gè)圖,若從頂點(diǎn)a出發(fā),按廣度優(yōu)先搜索法進(jìn)行遍歷,則也許得到的一種頂點(diǎn)序列為()。A.acedfbB.aecfdbC.a(chǎn)ecdfbD.acebfdbbdfeca圖126.已知如圖1所示的一個(gè)圖,若從頂點(diǎn)a出發(fā),按深度優(yōu)先搜索法進(jìn)行遍歷,則也許得到的一種頂點(diǎn)序列為()。A.abedfcB.a(chǎn)cfebdC.aebcfdD.aedfbc27.一組記錄的關(guān)鍵字序列為(42,37,62,40,32,92),運(yùn)用快速排序算法,以第一個(gè)關(guān)鍵字為分割元素,算法通過一次劃分后結(jié)果為()。A.32,37,40,42,62,92B.37,32,40,42,62,92C.32,40,37,42,62,92D.32,37,42,40,62,9228.一組記錄的關(guān)鍵字序列為(46,20,30,79,56,38,40,84,90,110),運(yùn)用快速排序,以第一個(gè)關(guān)鍵字為分割元素,通過一次劃分后結(jié)果為()。A.20,30,40,38,46,79,56,84,90,100B.40,20,30,38,46,56,79,84,90,110C.30,20,40,38,46,84,56,79,90,100D.20,3038,40,46,56,79,84,90,10029.一組記錄的關(guān)鍵字序列為(80,57,41,39,46,47),運(yùn)用堆排序(堆頂元素是最小元素)的方法建立的初始堆為()。A.39,46,41,57,80,47B.39,47,46,80,41,57C.41,39,46,47,57,80D.39,80,46,47,41,57bbdfeca圖230.一組記錄的關(guān)鍵字序列為(75,63,95,80,53,45,38,20),運(yùn)用堆排序(堆頂元素是最大元素)的方法建立的初始堆為()。A.95,80,75,63,53,45,38,20B.95,63,75,80,53,45,38,20c.95,80,45,63,53,75,38,20D.95,80,75,20,53,45,38,63二、填空題1.數(shù)據(jù)元素可以有一個(gè)或__(dá)______組成。2.數(shù)據(jù)元素之間的抽象關(guān)系稱為________結(jié)構(gòu)。3.結(jié)構(gòu)中的數(shù)據(jù)元素存在一對(duì)一的關(guān)系稱為線性結(jié)構(gòu)。而數(shù)據(jù)元素存在___(dá)__(dá)__的關(guān)系稱為圖狀結(jié)構(gòu)。4.規(guī)定在n個(gè)數(shù)據(jù)元素中找值最大的元素,其基本操作為__(dá)____(dá)__。算法的時(shí)間復(fù)雜度為__(dá)___(dá)__。5.設(shè)有一個(gè)長度為25的順序表,要?jiǎng)h除前3個(gè)元素,則最少要移動(dòng)元素的個(gè)數(shù)為()。6.設(shè)有一個(gè)長度為25的順序表,第8號(hào)元素到第25號(hào)元素依次存放的值為8,9,10,11,…,25,某人想要?jiǎng)h除第8個(gè)元素,他的做法是從第25號(hào)元素開始,直到第9號(hào)元素依次向前移動(dòng)1個(gè)位置,其結(jié)果新表中第9號(hào)元素的值為()。7.在雙向鏈表中,要?jiǎng)h除p所指的結(jié)點(diǎn),其中所用的一條語句(p->prior)->next=p->next;的功能是:使P所指結(jié)點(diǎn)的直接前驅(qū)的右指針指向__(dá)___(dá)___。8.在雙向鏈表中,要在p所指的結(jié)后插入q所指的結(jié)點(diǎn)(設(shè)q所指的結(jié)點(diǎn)已賦值),可以先用語句q->next=p->next;(p->next)->prior=q;然后再用語句q->prior=p;和語句____(dá)___(dá)_。9.設(shè)有一個(gè)頭指針為head的單向鏈表,p指向鏈表中的某結(jié)點(diǎn),若要使該鏈表成為單向循環(huán)鏈表,可用語句while(p->next!=NULL)p=p->next;和___(dá)_____。10.在一個(gè)單向鏈表中,要?jiǎng)h除p所指結(jié)點(diǎn)的直接后繼結(jié)點(diǎn)。則可以用操作_______(dá)_。(用一條語句)11.向一個(gè)棧頂指針為top的鏈棧中插入一個(gè)p所指結(jié)點(diǎn)時(shí),某人用語句top=p;p->next=top;這樣做的結(jié)果使p所指向的結(jié)點(diǎn)的指針域指向了____(dá)___(dá)。12.向一個(gè)棧頂指針為top的鏈棧中插入一個(gè)p所指結(jié)點(diǎn)時(shí),可執(zhí)行____(dá)___(dá)_操作。(填兩條語句,結(jié)點(diǎn)的指針域?yàn)閚ext)13.在一個(gè)鏈隊(duì)中,設(shè)front和rear分別為隊(duì)頭和隊(duì)尾指針,則s所指結(jié)點(diǎn)(數(shù)據(jù)域已賦值)的入隊(duì)操作為s->next=NULL;.___(dá)____(dá)_和rear=s;14.在一個(gè)帶頭結(jié)點(diǎn)的鏈隊(duì)中,設(shè)front和rear分別為隊(duì)頭和隊(duì)尾指針,則刪除一個(gè)結(jié)點(diǎn)的操作為p=front->next;____(dá)___=p->next;(結(jié)點(diǎn)的指針域?yàn)閚ext,p為輔助用指針)15.設(shè)有n階對(duì)稱矩陣A,用一維數(shù)組s壓縮存儲(chǔ)A的下三角元素,s的下標(biāo)從零開始,元素s[26]相應(yīng)于A中的元素為_______。16.設(shè)有n階對(duì)稱矩陣A,用一維數(shù)組s壓縮存儲(chǔ)A的下三角元素,s的下標(biāo)從零開始,最后一個(gè)元素的下標(biāo)為27,則n=_______。17.對(duì)稀疏矩陣進(jìn)行壓縮存儲(chǔ),可采用三元組表,設(shè)a是稀疏矩陣A相應(yīng)的三元組表類型(結(jié)構(gòu)體類型)變量,a中的一個(gè)成員項(xiàng)是三元組類型的結(jié)構(gòu)體數(shù)組data,按書中定義,若data的下標(biāo)從零開始,最后一個(gè)元素下標(biāo)為10,又data[10].i=8;a.data[10].j=5;a.data[10].v=36;它提供的A數(shù)組的相關(guān)信息有_______。18.一棵3度的樹,其中3度結(jié)1個(gè),2度結(jié)2個(gè),1度結(jié)2個(gè),則該樹共有____(dá)___個(gè)葉結(jié)點(diǎn)。19.設(shè)有一棵有78個(gè)結(jié)點(diǎn)的完全二叉樹,該樹共有__(dá)___(dá)____層。(根所在結(jié)點(diǎn)為第1層)20.一棵有7個(gè)葉結(jié)點(diǎn)的二叉樹,其1度結(jié)點(diǎn)數(shù)的個(gè)數(shù)為2,則該樹共有__(dá)_____個(gè)結(jié)點(diǎn)。21.對(duì)于一棵具有________個(gè)結(jié)點(diǎn)的二叉樹,其相應(yīng)的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中共有n+1個(gè)指針域空.22.如圖2所示的二叉樹,其中序遍歷序列為______(dá)__(dá)_。23.如圖2所示的二叉樹,其中序遍歷序列為____(dá)____(dá)_。4g4g3f9a7b58e6c圖33c3c7gd65e4dc2b18hd9圖424.二叉排序樹或者是一棵空樹,或者是一棵具有下列性質(zhì)的二叉排:若它的左子樹非空,則左子樹的所有結(jié)點(diǎn)的值都小于它的根結(jié)點(diǎn)的值;若它的右子樹非空,則右子的所有結(jié)點(diǎn)的值都大于(若允許結(jié)點(diǎn)有相同的值,則大于等于)它的根結(jié)點(diǎn)的值。這種說法是________(dá)__的。(回答對(duì)的或不對(duì)的)三、綜合題1.(1)已知某二叉樹的后序遍歷序列是debca,中序遍歷序列是dbeac,試畫出該二叉樹。(2)若上述二叉樹的各個(gè)結(jié)點(diǎn)的字符分別代表不同的整數(shù)(其中沒有相等的),并恰好使該樹成為一棵二叉排序樹,試給出a、b、c、d、e的大小關(guān)系。(3)給出該樹的前序遍歷序列。2.(1)以3,4,5,8,9,10作為葉結(jié)點(diǎn)的權(quán),構(gòu)造一棵哈夫曼樹。(2)給出相應(yīng)權(quán)重值葉結(jié)點(diǎn)的哈夫曼編碼。(2)一棵哈夫曼樹有2n-1個(gè)結(jié)點(diǎn),它是共有多少個(gè)權(quán)重值構(gòu)造而成的?簡述理由?3.(1)運(yùn)用篩選過程把序列{42,82,67,102,16,32,57,52}建成堆(小根堆),畫出相應(yīng)的完全二叉樹(不規(guī)定中間過程)。(2)寫出對(duì)上述堆相應(yīng)的完全二叉樹進(jìn)行中序遍歷得到的序列。4.(1)簡述拓?fù)渑判虻沫h(huán)節(jié)。(2)說明有向圖的拓?fù)湫蛄胁灰欢ㄊ俏ㄒ坏囊蛩?。?)如何運(yùn)用拓?fù)渑判蛩惴ㄨb定圖是否存在回路。(4)設(shè)有向圖G如下,寫出一方面刪除頂點(diǎn)1的3種拓?fù)湫蛄小?1234543465圖55.設(shè)查找表為(11,12,13,14,15,16,17,18,19,20,21),元素的下標(biāo)從0開始。(1)畫出對(duì)上述查找表進(jìn)行折半查找所相應(yīng)的鑒定樹(樹中結(jié)點(diǎn)用數(shù)值表達(dá))(2)說明成功查找到元素15,19各需要通過多少次比較?(3)說明查找不到元素10,15.5各需要通過多少次比較?(4)給出中序遍歷鑒定樹的序列。6.設(shè)有序表為(21,22,23,24,25,26,27,28,29,30,31,32),元素的下標(biāo)從0開始。(1)說出有哪幾個(gè)元素需要通過4次元素間的比較才干成功查到。(2)畫出對(duì)上述有序表進(jìn)行折半查找所相應(yīng)的鑒定樹(樹結(jié)點(diǎn)用數(shù)值表達(dá))(3)設(shè)查找元素為5,需要進(jìn)行多少次元素間的比較才干擬定不能查到。(4)求在等概率條件下,成功查找的平均比較次數(shù)?四、程序填空題1.以下程序是折半插入排序的算法設(shè)待排序的記錄序列存放在a[1],…a[n]中,以a[0]作為輔助工作單元,以下程序是要把a(bǔ)[i]插入到已有序的序列a[1],…a[i-1]中。voidbinsort(NODEa[],intn){intx,i,j,s,k,m;for(i=2;i<=__(1)___(dá);i++){a[0]=a[i];x=a[i].key;s=1;j=i-1;while(s<=j){m=__(2)___(dá)if(x<a[m].key)__(3)___else__(dá)(4)__(dá)_}for(k=i-1;k>=j+1;k--)__(5)___=a[k];a[j+1]=a[0];}}2.以下程序是快速排序的算法設(shè)待序的記錄序列存放在a[start],…a[end]中,按記錄的關(guān)鍵字進(jìn)行快速排序,先進(jìn)行一次劃分,再分別進(jìn)行遞歸調(diào)用voidquicksort(NODEa[],intstart,intend){inti,j;NODEmid;if(start>=end)return;i=start;j=end;mid=a[i];
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 出租轉(zhuǎn)讓鏟車合同范例
- 企業(yè)對(duì)外投資合同范例
- 光伏設(shè)計(jì)EMC合同范例
- 店面維修合同范例
- 加油購銷合同范例
- 小型工程報(bào)價(jià)合同范例
- 大型房地產(chǎn)合同模板
- 家用暖氣采購合同模板
- 作品授權(quán)合同范例
- 印刷客戶合同范例
- 中國石化刮刮卡合同范例
- 認(rèn)識(shí)他人課件教學(xué)課件
- 江蘇省南通市2024-2025學(xué)年八年級(jí)上學(xué)期11月期中數(shù)學(xué)試題(無答案)
- 家裝瓷磚鋪貼專項(xiàng)施工協(xié)議范本
- 天津市2024年七年級(jí)上學(xué)期數(shù)學(xué)期中考試試卷【附答案】
- 中國汽車剎車盤行業(yè)投資分析、市場運(yùn)行態(tài)勢研究報(bào)告-智研咨詢發(fā)布
- “雙減”政策下作業(yè)設(shè)計(jì)策略4篇
- 普外科重點(diǎn)專科評(píng)審工作匯報(bào)
- 2024-2025學(xué)年初中音樂九年級(jí)上冊(cè)湘藝版(2024)教學(xué)設(shè)計(jì)合集
- 2024-2025學(xué)年北師大版九年級(jí)數(shù)學(xué)上冊(cè)期中綜合復(fù)習(xí)題
- 第十五屆全國交通運(yùn)輸行業(yè)“百通科信杯”機(jī)動(dòng)車檢測工(學(xué)生組)理論知識(shí)題庫
評(píng)論
0/150
提交評(píng)論