版權(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í)題及答案數(shù)據(jù)結(jié)構(gòu)練習(xí)題及答案數(shù)據(jù)結(jié)構(gòu)練習(xí)題及答案數(shù)據(jù)結(jié)構(gòu)練習(xí)題及答案編制僅供參考審核批準(zhǔn)生效日期地址:電話:傳真:郵編:數(shù)據(jù)結(jié)構(gòu)練習(xí)題(一)一、單選題棧和隊(duì)列的共同特點(diǎn)是()。A.只允許在端點(diǎn)處插入和刪除元素B.都是先進(jìn)后出C.都是先進(jìn)先出D.沒(méi)有共同點(diǎn)用鏈接方式存儲(chǔ)的隊(duì)列,在進(jìn)行插入運(yùn)算時(shí)()。A.僅修改頭指針B.頭、尾指針都要修改C.僅修改尾指針D.頭、尾指針可能都要修改以下數(shù)據(jù)結(jié)構(gòu)中()是非線性結(jié)構(gòu)。A.隊(duì)列B.棧C.線性表D.二叉樹(shù)設(shè)有一個(gè)二維數(shù)組A[m][n],假設(shè)A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每個(gè)元素占一個(gè)空間,問(wèn)A[3][3](10)存放在()位置。腳注(10)表示用10進(jìn)制表示。A.688B.678C.692D.696樹(shù)最適合用來(lái)表示()。A.有序數(shù)據(jù)元素B.無(wú)序數(shù)據(jù)元素C.元素之間具有分支層次關(guān)系的數(shù)據(jù)D.元素之間無(wú)聯(lián)系的數(shù)據(jù)二叉樹(shù)的第k層的結(jié)點(diǎn)數(shù)最多為()。A.2k-1+1D.2k-1若有18個(gè)元素的有序表存放在一維數(shù)組A[19]中,第一個(gè)元素放A[1]中,現(xiàn)進(jìn)行二分查找,則查找A[3]的比較序列的下標(biāo)依次為()。A.1,2,3 B.9,5,2,3C.9,5,3 D.9,4,2,3對(duì)于線性表(7,34,55,25,64,46,20,10)進(jìn)行散列存儲(chǔ)時(shí),若選用H(K)=K%9作為散列函數(shù),則散列地址為1的元素有()個(gè)。A.1B.2C.3D.4設(shè)有6個(gè)結(jié)點(diǎn)的無(wú)向圖,該圖至少應(yīng)有()條邊才能確保是一個(gè)連通圖。二、填空題通常從四個(gè)方面評(píng)價(jià)算法的質(zhì)量:_________、_________、_________和_________。一個(gè)算法的時(shí)間復(fù)雜度為(n3+n2log2n+14n)/n2,其數(shù)量級(jí)表示為_(kāi)_______。假定一棵樹(shù)的廣義表表示為A(C,D(E,F(xiàn),G),H(I,J)),則樹(shù)中所含的結(jié)點(diǎn)數(shù)為_(kāi)_________個(gè),樹(shù)的深度為_(kāi)__________,樹(shù)的度為_(kāi)________。若用鏈表存儲(chǔ)一棵二叉樹(shù)時(shí),每個(gè)結(jié)點(diǎn)除數(shù)據(jù)域外,還有指向左孩子和右孩子的兩個(gè)指針。在這種存儲(chǔ)結(jié)構(gòu)中,n個(gè)結(jié)點(diǎn)的二叉樹(shù)共有________個(gè)指針域,其中有________個(gè)指針域是存放了地址,有________________個(gè)指針是空指針。對(duì)于一個(gè)具有n個(gè)頂點(diǎn)和e條邊的有向圖和無(wú)向圖,在其對(duì)應(yīng)的鄰接表中,所含邊結(jié)點(diǎn)分別有_______個(gè)和________個(gè)。AOV網(wǎng)是一種___________________的圖。在一個(gè)具有n個(gè)頂點(diǎn)的無(wú)向完全圖中,包含有________條邊,在一個(gè)具有n個(gè)頂點(diǎn)的有向完全圖中,包含有________條邊。假定一個(gè)線性表為(12,23,74,55,63,40),若按Key%4條件進(jìn)行劃分,使得同一余數(shù)的元素成為一個(gè)子表,則得到的四個(gè)子表分別為_(kāi)___________________________、___________________、_______________________和__________________________。在快速排序、堆排序、歸并排序中,_________排序是穩(wěn)定的。三、計(jì)算題在如下數(shù)組A中鏈接存儲(chǔ)了一個(gè)線性表,表頭指針為A[0].next,試寫(xiě)出該線性表。A01234567data605078903440next3572041請(qǐng)畫(huà)出下圖的鄰接矩陣和鄰接表。已知一個(gè)圖的頂點(diǎn)集V和邊集E分別為:V={1,2,3,4,5,6,7};E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25};用克魯斯卡爾算法得到最小生成樹(shù),試寫(xiě)出在最小生成樹(shù)中依次得到的各條邊。畫(huà)出向小根堆中加入數(shù)據(jù)4,2,5,8,3時(shí),每加入一個(gè)數(shù)據(jù)后堆的變化。四、閱讀算法LinkListmynote(LinkListL){設(shè)某強(qiáng)連通圖中有n個(gè)頂點(diǎn),則該強(qiáng)連通圖中至少有()條邊。 (A)n(n-1) (B)n+1 (C)n (D)n(n+1)8.設(shè)有5000個(gè)待排序的記錄關(guān)鍵字,如果需要用最快的方法選出其中最小的10個(gè)記錄關(guān)鍵字,則用下列()方法可以達(dá)到此目的。 (A)快速排序 (B)堆排序 (C)歸并排序 (D)插入排序二、填空題數(shù)據(jù)的物理結(jié)構(gòu)主要包括_____________和______________兩種情況。設(shè)一棵完全二叉樹(shù)中有500個(gè)結(jié)點(diǎn),則該二叉樹(shù)的深度為_(kāi)_________;若用二叉鏈表作為該完全二叉樹(shù)的存儲(chǔ)結(jié)構(gòu),則共有___________個(gè)空指針域。設(shè)輸入序列為1、2、3,則經(jīng)過(guò)棧的作用后可以得到___________種不同的輸出序列。設(shè)有向圖G用鄰接矩陣A[n][n]作為存儲(chǔ)結(jié)構(gòu),則該鄰接矩陣中第i行上所有元素之和等于頂點(diǎn)i的________,第i列上所有元素之和等于頂點(diǎn)i的________。設(shè)哈夫曼樹(shù)中共有n個(gè)結(jié)點(diǎn),則該哈夫曼樹(shù)中有________個(gè)度數(shù)為1的結(jié)點(diǎn)。設(shè)有向圖G中有n個(gè)頂點(diǎn)e條有向邊,所有的頂點(diǎn)入度數(shù)之和為d,則e和d的關(guān)系為_(kāi)________。__________遍歷二叉排序樹(shù)中的結(jié)點(diǎn)可以得到一個(gè)遞增的關(guān)鍵字序列(填先序、中序或后序)。設(shè)查找表中有100個(gè)元素,如果用二分法查找方法查找數(shù)據(jù)元素X,則最多需要比較________次就可以斷定數(shù)據(jù)元素X是否在查找表中。不論是順序存儲(chǔ)結(jié)構(gòu)的棧還是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的棧,其入棧和出棧操作的時(shí)間復(fù)雜度均為_(kāi)___________。設(shè)有n個(gè)結(jié)點(diǎn)的完全二叉樹(shù),如果按照從自上到下、從左到右從1開(kāi)始順序編號(hào),則第i個(gè)結(jié)點(diǎn)的雙親結(jié)點(diǎn)編號(hào)為_(kāi)___________,右孩子結(jié)點(diǎn)的編號(hào)為_(kāi)__________。設(shè)一組初始記錄關(guān)鍵字為(72,73,71,23,94,16,5),則以記錄關(guān)鍵字72為基準(zhǔn)的一趟快速排序結(jié)果為_(kāi)__________________________。設(shè)有向圖G中有向邊的集合E={<1,2>,<2,3>,<1,4>,<4,2>,<4,3>},則該圖的一種拓?fù)湫蛄袨開(kāi)___________________。下列算法實(shí)現(xiàn)在順序散列表(哈希表)中查找值為x的關(guān)鍵字,請(qǐng)?jiān)谙聞澗€處填上正確的語(yǔ)句。structrecord{intkey;intothers;};inthashsqsearch(structrecordhashtable[],intk){inti,j;j=i=k%p;while(hashtable[j].key!=k&&hashtable[j].flag!=0){j=(____)%m;if(i==j)return(-1);}if(_______________________)return(j);elsereturn(-1);}下列算法實(shí)現(xiàn)在二叉排序樹(shù)上查找關(guān)鍵值k,請(qǐng)?jiān)谙聞澗€處填上正確的語(yǔ)句。typedefstructnode{intkey;structnode*lchild;structnode*rchild;}bitree;bitree*bstsearch(bitree*t,intk){ if(t==0)return(0);elsewhile(t!=0)if(t->key==k)_____________;elseif(t->key>k)t=t->lchild;else_____________;}三、計(jì)算題1.已知二叉樹(shù)的前序遍歷序列是AEFBGCDHIKJ,中序遍歷序列是EFAGBCHKIJD,畫(huà)出此二叉樹(shù)。2.已知待散列的線性表為(36,15,40,63,22),散列用的一維地址空間為[0..6],假定選用的散列函數(shù)是H(K)=Kmod7,若發(fā)生沖突采用線性探查法處理,試:(1)計(jì)算出每一個(gè)元素的散列地址并在下圖中填寫(xiě)出散列表:`0123456(2)求出在查找每一個(gè)元素概率相等情況下的平均查找長(zhǎng)度。3.已知序列(10,18,4,3,6,12,1,9,18,8)請(qǐng)用快速排序?qū)懗雒恳惶伺判虻慕Y(jié)果。四、算法設(shè)計(jì)題設(shè)計(jì)在單鏈表中刪除值相同的多余結(jié)點(diǎn)的算法。設(shè)計(jì)一個(gè)求結(jié)點(diǎn)x在二叉樹(shù)中的雙親結(jié)點(diǎn)算法。
數(shù)據(jù)結(jié)構(gòu)練習(xí)題(四)一、選擇題1.設(shè)一維數(shù)組中有n個(gè)數(shù)組元素,則讀取第i個(gè)數(shù)組元素的平均時(shí)間復(fù)雜度為()。 (A)O(n) (B)O(nlog2n) (C)O(1) (D)O(n2)2.設(shè)一棵二叉樹(shù)的深度為k,則該二叉樹(shù)中最多有()個(gè)結(jié)點(diǎn)。 (A)2k-1 (B)2k (C)2k-1 (D)2k-13.設(shè)某無(wú)向圖中有n個(gè)頂點(diǎn)e條邊,則該無(wú)向圖中所有頂點(diǎn)的入度之和為()。 (A)n (B)e (C)2n (D)2e4.在二叉排序樹(shù)中插入一個(gè)結(jié)點(diǎn)的時(shí)間復(fù)雜度為()。 (A)O(1) (B)O(n) (C)O(log2n) (D)O(n2)5.設(shè)某有向圖的鄰接表中有n個(gè)表頭結(jié)點(diǎn)和m個(gè)表結(jié)點(diǎn),則該圖中有()條有向邊。 (A)n (B)n-1 (C)m (D)m-16.設(shè)一組初始記錄關(guān)鍵字序列為(345,253,674,924,627),則用基數(shù)排序需要進(jìn)行()趟的分配和回收才能使得初始關(guān)鍵字序列變成有序序列。 (A)3 (B)4 (C)5 (D)87.設(shè)用鏈表作為棧的存儲(chǔ)結(jié)構(gòu)則退棧操作()。 (A)必須判別棧是否為滿 (B)必須判別棧是否為空 (C)判別棧元素的類(lèi)型 (D)對(duì)棧不作任何判別8.下列四種排序中()的空間復(fù)雜度最大。 (A)快速排序 (B)冒泡排序 (C)希爾排序 (D)堆9.設(shè)某二叉樹(shù)中度數(shù)為0的結(jié)點(diǎn)數(shù)為N0,度數(shù)為1的結(jié)點(diǎn)數(shù)為Nl,度數(shù)為2的結(jié)點(diǎn)數(shù)為N2,則下列等式成立的是()。 (A)N0=N1+1 (B)N0=Nl+N2 (C)N0=N2+1 (D)N0=2N1+l10.設(shè)有序順序表中有n個(gè)數(shù)據(jù)元素,則利用二分查找法查找數(shù)據(jù)元素X的最多比較次數(shù)不超過(guò)()。 (A)log2n+1 (B)log2n-1 (C)log2n (D)log2(n+1)二、填空題設(shè)有n個(gè)無(wú)序的記錄關(guān)鍵字,則直接插入排序的時(shí)間復(fù)雜度為_(kāi)_______,快速排序的平均時(shí)間復(fù)雜度為_(kāi)________。根據(jù)初始關(guān)鍵字序列(19,22,01,38,10)建立的二叉排序樹(shù)的高度為_(kāi)___________。深度為k的完全二叉樹(shù)中最少有____________個(gè)結(jié)點(diǎn)。設(shè)初始記錄關(guān)鍵字序列為(K1,K2,…,Kn),則用篩選法思想建堆必須從第______個(gè)元素開(kāi)始進(jìn)行篩選。設(shè)哈夫曼樹(shù)中共有99個(gè)結(jié)點(diǎn),則該樹(shù)中有_________個(gè)葉子結(jié)點(diǎn);若采用二叉鏈表作為存儲(chǔ)結(jié)構(gòu),則該樹(shù)中有_____個(gè)空指針域。設(shè)有一個(gè)順序循環(huán)隊(duì)列中有M個(gè)存儲(chǔ)單元,則該循環(huán)隊(duì)列中最多能夠存儲(chǔ)________個(gè)隊(duì)列元素;當(dāng)前實(shí)際存儲(chǔ)________________個(gè)隊(duì)列元素(設(shè)頭指針F指向當(dāng)前隊(duì)頭元素的前一個(gè)位置,尾指針指向當(dāng)前隊(duì)尾元素的位置)。設(shè)順序線性表中有n個(gè)數(shù)據(jù)元素,則第i個(gè)位置上插入一個(gè)數(shù)據(jù)元素需要移動(dòng)表中_______個(gè)數(shù)據(jù)元素;刪除第i個(gè)位置上的數(shù)據(jù)元素需要移動(dòng)表中_______個(gè)元素。設(shè)一組初始記錄關(guān)鍵字序列為(20,18,22,16,30,19),則以20為中軸的一趟快速排序結(jié)果為_(kāi)_____________________________。設(shè)一組初始記錄關(guān)鍵字序列為(20,18,22,16,30,19),則根據(jù)這些初始關(guān)鍵字序列建成的初始堆為_(kāi)_______________________。設(shè)某無(wú)向圖G中有n個(gè)頂點(diǎn),用鄰接矩陣A作為該圖的存儲(chǔ)結(jié)構(gòu),則頂點(diǎn)i和頂點(diǎn)j互為鄰接點(diǎn)的條件是______________________。設(shè)無(wú)向圖對(duì)應(yīng)的鄰接矩陣為A,則A中第i行上非0元素的個(gè)數(shù)_________第i列上非0元素的個(gè)數(shù)(填等于,大于或小于)。設(shè)前序遍歷某二叉樹(shù)的序列為ABCD,中序遍歷該二叉樹(shù)的序列為BADC,則后序遍歷該二叉樹(shù)的序列為_(kāi)____________。設(shè)散列函數(shù)H(k)=kmodp,解決沖突的方法為鏈地址法。要求在下列算法劃線處填上正確的語(yǔ)句完成在散列表hashtalbe中查找關(guān)鍵字值等于k的結(jié)點(diǎn),成功時(shí)返回指向關(guān)鍵字的指針,不成功時(shí)返回標(biāo)志0。typedefstructnode{intkey;structnode*next;}lklist;voidcreatelkhash(lklist*hashtable[]){inti,k;lklist*s;for(i=0;i<m;i++)_____________________;for(i=0;i<n;i++){s=(lklist*)malloc(sizeof(lklist));s->key=a[i];k=a[i]%p;s->next=hashtable[k];_______________________;}}三、計(jì)算題1、下圖所示的森林:(1)求樹(shù)(a)的先根序列和后根序列;(2)求森林先序序列和中序序列;(3)將此森林轉(zhuǎn)換為相應(yīng)的二叉樹(shù);2、設(shè)散列表的地址范圍是[0..9],散列函數(shù)為H(key)=(key2+2)MOD9,并采用鏈表處理沖突,請(qǐng)畫(huà)出元素7、4、5、3、6、2、8、9依次插入散列表的存儲(chǔ)結(jié)構(gòu)。四、算法設(shè)計(jì)題設(shè)單鏈表中有僅三類(lèi)字符的數(shù)據(jù)元素(大寫(xiě)字母、數(shù)字和其它字符),要求利用原單鏈表中結(jié)點(diǎn)空間設(shè)計(jì)出三個(gè)單鏈表的算法,使每個(gè)單鏈表只包含同類(lèi)字符。設(shè)計(jì)在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)上交換二叉樹(shù)中所有結(jié)點(diǎn)左右子樹(shù)的算法。在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)上建立一棵二叉排序樹(shù)。
數(shù)據(jù)結(jié)構(gòu)練習(xí)題(五)一、選擇題1.?dāng)?shù)據(jù)的最小單位是()。 (A)數(shù)據(jù)項(xiàng) (B)數(shù)據(jù)類(lèi)型 (C)數(shù)據(jù)元素 (D)數(shù)據(jù)變量2.設(shè)一組初始記錄關(guān)鍵字序列為(50,40,95,20,15,70,60,45),則以增量d=4的一趟希爾排序結(jié)束后前4條記錄關(guān)鍵字為()。 (A)40,50,20,95 (B)15,40,60,20 (C)15,20,40,45 (D)45,40,15,203.設(shè)一組初始記錄關(guān)鍵字序列為(25,50,15,35,80,85,20,40,36,70),其中含有5個(gè)長(zhǎng)度為2的有序子表,則用歸并排序的方法對(duì)該記錄關(guān)鍵字序列進(jìn)行一趟歸并后的結(jié)果為()。(A)15,25,35,50,20,40,80,85,36,70(B)15,25,35,50,80,20,85,40,70,36(C)15,25,35,50,80,85,20,36,40,70(D)15,25,35,50,80,20,36,40,70,854.設(shè)一個(gè)有序的單鏈表中有n個(gè)結(jié)點(diǎn),現(xiàn)要求插入一個(gè)新結(jié)點(diǎn)后使得單鏈表仍然保持有序,則該操作的時(shí)間復(fù)雜度為()。 (A)O(log2n) (B)O(1) (C)O(n2) (D)O(n)5.設(shè)有序表中有1000個(gè)元素,則用二分查找查找元素X最多需要比較()次。 (A)25 (B)10 (C)7 (D)16.設(shè)連通圖G中的邊集E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},則從頂點(diǎn)a出發(fā)可以得到一種深度優(yōu)先遍歷的頂點(diǎn)序列為()。 (A)abedfc (B)acfebd (C)aebdfc (D)aedfcb7.設(shè)輸入序列是1、2、3、……、n,經(jīng)過(guò)棧的作用后輸出序列的第一個(gè)元素是n,則輸出序列中第i個(gè)輸出元素是()。 (A)n-i (B)n-1-i (C)n+1-i (D)不能確定8.設(shè)一組初始記錄關(guān)鍵字序列為(45,80,55,40,42,85),則以第一個(gè)記錄關(guān)鍵字45為基準(zhǔn)而得到一趟快速排序的結(jié)果是()。 (A)40,42,45,55,80,83 (B)42,40,45,80,85,88 (C)42,40,45,55,80,85 (D)42,40,45,85,55,80二、填空題在圖的鄰接表中用順序存儲(chǔ)結(jié)構(gòu)存儲(chǔ)表頭結(jié)點(diǎn)的優(yōu)點(diǎn)是____________________。設(shè)有一個(gè)n階的下三角矩陣A,如果按照行的順序?qū)⑾氯蔷仃囍械脑兀ò▽?duì)角線上元素)存放在n(n+1)個(gè)連續(xù)的存儲(chǔ)單元中,則A[i][j]與A[0][0]之間有_______個(gè)數(shù)據(jù)元素。棧的插入和刪除只能在棧的棧頂進(jìn)行,后進(jìn)棧的元素必定先出棧,所以又把棧稱為_(kāi)_________表;隊(duì)列的插入和刪除運(yùn)算分別在隊(duì)列的兩端進(jìn)行,先進(jìn)隊(duì)列的元素必定先出隊(duì)列,所以又把隊(duì)列稱為_(kāi)________表。設(shè)一棵完全二叉樹(shù)的順序存儲(chǔ)結(jié)構(gòu)中存儲(chǔ)數(shù)據(jù)元素為ABCDEF,則該二叉樹(shù)的前序遍歷序列為_(kāi)__________,中序遍歷序列為_(kāi)__________,后序遍歷序列為_(kāi)__________。設(shè)一棵完全二叉樹(shù)有128個(gè)結(jié)點(diǎn),則該完全二叉樹(shù)的深度為_(kāi)_______,有__________個(gè)葉子結(jié)點(diǎn)。設(shè)有向圖G的存儲(chǔ)結(jié)構(gòu)用鄰接矩陣A來(lái)表示,則A中第i行中所有非零元素個(gè)數(shù)之和等于頂點(diǎn)i的________,第i列中所有非零元素個(gè)數(shù)之和等于頂點(diǎn)i的__________。下面程序段的功能是實(shí)現(xiàn)冒泡排序算法,請(qǐng)?jiān)谙聞澗€處填上正確的語(yǔ)句。voidbubble(intr[n]){for(i=1;i<=n-1;i++){for(exchange=0,j=0;j<_____________;j++)if(r[j]>r[j+1]){temp=r[j+1];______________;r[j]=temp;exchange=1;}if(exchange==0)return;}}下面程序段的功能是實(shí)現(xiàn)二分查找算法,請(qǐng)?jiān)谙聞澗€處填上正確的語(yǔ)句。structrecord{intkey;intothers;};intbisearch(structrecordr[],intk){intlow=0,mid,high=n-1;while(low<=high){________________________________;if(r[mid].key==k)return(mid+1);elseif(____________)high=mid-1;elselow=mid+1;}return(0);}三、應(yīng)用題設(shè)某棵二叉樹(shù)的中序遍歷序列為DBEAC,前序遍歷序列為ABDEC,要求給出該二叉樹(shù)的的后序遍歷序列。設(shè)無(wú)向圖G(如右圖所示),給出該圖的最小生成樹(shù)上邊的集合并計(jì)算最小生成樹(shù)各邊上的權(quán)值之和。設(shè)散列表的長(zhǎng)度為8,散列函數(shù)H(k)=kmod7,初始記錄關(guān)鍵字序列為(25,31,8,27,13,68),要求分別計(jì)算出用線性探測(cè)法和鏈地址法作為解決沖突方法的平均查找長(zhǎng)度。四、算法設(shè)計(jì)題設(shè)計(jì)判斷兩個(gè)二叉樹(shù)是否相同的算法。設(shè)計(jì)兩個(gè)有序單鏈表的合并排序算法。
數(shù)據(jù)結(jié)構(gòu)練習(xí)題(一)參考答案選擇題二、填空題正確性易讀性強(qiáng)壯性高效率O(n)9332nn-1n+1e2e有向無(wú)回路n(n-1)/2n(n-1)(12,40)()(74)(23,55,63)歸并三、計(jì)算題線性表為:(78,50,40,60,34,90)鄰接矩陣:鄰接表:用克魯斯卡爾算法得到的最小生成樹(shù)為:(1,2)3,(4,6)4,(1,3)5,(1,4)8,(2,5)10,(4,7)2044444222552852834528434444422255285283452843讀算法(1)查詢鏈表的尾結(jié)點(diǎn)(2)將第一個(gè)結(jié)點(diǎn)鏈接到鏈表的尾部,作為新的尾結(jié)點(diǎn)(3)返回的線性表為(a2,a3,…,an,a1)遞歸地后序遍歷鏈?zhǔn)酱鎯?chǔ)的二叉樹(shù)。算法填空trueBST->leftBST->right編寫(xiě)算法intCountX(LNode*HL,ElemTypex){inti=0;LNode*p=HL;ey==kreturn(t),t=t->rchild三、計(jì)算題1.2、H(36)=36mod7=1;H1(22)=(1+1)mod7=2;….沖突H(15)=15mod7=1;….沖突H2(22)=(2+1)mod7=3;H1(15)=(1+1)mod7=2;H(40)=40mod7=5;H(63)=63mod7=0;H(22)=22mod7=1;….沖突(1)01234566336152240(2)ASL=3、(8,9,4,3,6,1),10,(12,18,18)(1,6,4,3),8,(9),10,12,(18,18)1,(3,4,6),8,9,10,12,18,(18)1,3,(4,6),8,9,10,12,18,181,3,4,6,8,9,10,12,18,18四、算法設(shè)計(jì)題設(shè)計(jì)在單鏈表中刪除值相同的多余結(jié)點(diǎn)的算法。typedefintdatatype;typedefstructnode{datatypedata;structnode*next;}lklist;voiddelredundant(lklist*&head){lklist*p,*q,*s;for(p=head;p!=0;p=p->next){for(q=p->next,s=q;q!=0;)if(q->data==p->data){s->next=q->next;free(q);q=s->next;}else{s=q,q=q->next;}}}設(shè)計(jì)一個(gè)求結(jié)點(diǎn)x在二叉樹(shù)中的雙親結(jié)點(diǎn)算法。typedefstructnode{datatypedata;structnode*lchild,*rchild;}bitree;bitree*q[20];intr=0,f=0,flag=0;voidpreorder(bitree*bt,charx){if(bt!=0&&flag==0)if(bt->data==x){flag=1;return;}else{r=(r+1)%20;q[r]=bt;preorder(bt->lchild,x);preorder(bt->rchild,x);}}voidparent(bitree*bt,charx){inti;preorder(bt,x);for(i=f+1;i<=r;i++)if(q[i]->lchild->data==x||q[i]->rchild->data)break;if(flag==0)printf("notfoundx\n");elseif(i<=r)printf("%c",bt->data);elseprintf("notparent");}數(shù)據(jù)結(jié)構(gòu)練習(xí)題(四)參考答案一、選擇題1.C 2.D 3.D 4.B 5.C6.A 7.B 8.A 9.C 10.A二、填空題O(n2),O(nlog2n)32k-1n/250,51m-1,(R-F+M)%Mn+1-i,n-i(19,18,16,20,30,22)(16,18,19,20,32,22)A[i][j]=1等于BDCAhashtable[i]=0,hashtable[k]=s三、計(jì)算題1.(1)ABCDEF;BDEFCA;(2)ABCDEFGHIJK;BDEFCAIJKHG林轉(zhuǎn)換為相應(yīng)的二叉樹(shù);2.H(4)=H(5)=0,H(3)=H(6)=H(9)=2,H(8)=3,H(2)=H(7)=6四、算法設(shè)計(jì)題設(shè)單鏈表中有僅三類(lèi)字符的數(shù)據(jù)元素(大寫(xiě)字母、數(shù)字和其它字符),要求利用原單鏈表中結(jié)點(diǎn)空間設(shè)計(jì)出三個(gè)單鏈表的算法,使每個(gè)單鏈表只包含同類(lèi)字符。typedefchardatatype;typedefstructnode{datatypedata;structnode*next;}lklist;voidsplit(lklist*head,lklist*&ha,lklist*&hb,lklist*&hc){lklist*p;ha=0,hb=0,hc=0;for(p=head;p!=0;p=head){head=p->next;p->next=0;if(p->data>='A'&&p->data<='Z'){p->next=ha;ha=p;}elseif(p->data>='0'&&p->data<='9'){p->next=hb;hb=p;}else{p->next=hc;hc=p;}}}設(shè)計(jì)在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)上交換二叉樹(shù)中所有結(jié)點(diǎn)左右子樹(shù)的算法。typedefstructnode{intdata;structnode*lchild,*rchild;}bitree;voidswapbitree(bitree*bt){bitree*p;if(bt==0)return;swapbitree(bt->lchild);swapbitree(bt->rchild);p=bt->lchild;bt->lchild=bt->rchild;bt->rchild=p;}
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級(jí)語(yǔ)文上學(xué)期期中專(zhuān)題二 詞語(yǔ)(成語(yǔ))辨析及運(yùn)用(重點(diǎn)強(qiáng)訓(xùn))(原卷版)
- 商務(wù)運(yùn)輸合同范例
- 牙科入股合同范例
- 撫養(yǎng)老人合同范例
- 國(guó)外醫(yī)療服務(wù)合同范例
- 暖通行業(yè)個(gè)人合同范例
- 影視轉(zhuǎn)讓合同范例
- 勞動(dòng)合同范例 車(chē)隊(duì)
- 廣告制作安裝員工合同范例
- 東莞電梯保養(yǎng)合同范例
- 2024-2025學(xué)年統(tǒng)編版(2024)道德與法治小學(xué)一年級(jí)上冊(cè)教學(xué)設(shè)計(jì)
- 醫(yī)院醫(yī)技科室與臨床科室定期溝通制度
- 期中 (試題) -2024-2025學(xué)年人教PEP版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 造紙行業(yè)崗位安全操作規(guī)程
- 律師事務(wù)所人員管理制度
- 渣土、余土運(yùn)輸服務(wù)方案(技術(shù)方案)
- 網(wǎng)絡(luò)安全管理責(zé)任制度制度存在的問(wèn)題(8篇)
- 20以內(nèi)的加法口算練習(xí)題4000題 205
- 《全媒體營(yíng)銷(xiāo)與運(yùn)營(yíng)(微課版)》-教學(xué)大綱
- 《網(wǎng)絡(luò)系統(tǒng)建設(shè)與運(yùn)維》課件-項(xiàng)目一 5G技術(shù)特點(diǎn)和網(wǎng)
- Module3 Unit2 Do they like apples?(教學(xué)設(shè)計(jì))-2024-2025學(xué)年外研版(一起)英語(yǔ)二年級(jí)上冊(cè)
評(píng)論
0/150
提交評(píng)論