2023年數(shù)據(jù)結(jié)構(gòu)與算法期末試卷B_第1頁
2023年數(shù)據(jù)結(jié)構(gòu)與算法期末試卷B_第2頁
2023年數(shù)據(jù)結(jié)構(gòu)與算法期末試卷B_第3頁
2023年數(shù)據(jù)結(jié)構(gòu)與算法期末試卷B_第4頁
2023年數(shù)據(jù)結(jié)構(gòu)與算法期末試卷B_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2023—2023學年第二學期閩江學院期末試卷考試課程:《數(shù)據(jù)結(jié)構(gòu)與算法》試卷類別:A卷□B卷t考試形式:閉卷t開卷□合用專業(yè)年級:13級金融服務(wù)、13級軟件服務(wù)裝訂線裝訂線題號一二三總分得分一、單項選擇題60%(請將答案填入答題卡相應(yīng)位置,30題,每題2分,共60分)得分1、計算機算法必須具有輸入、輸出和()等5個特性。A.可行性、可移植性和可擴充性B.可行性、擬定性和有窮性C.擬定性、有窮性和穩(wěn)定性D.易讀性、穩(wěn)定性和安全性2、設(shè)語句x++的時間是單位時間,則以下語句的時間復(fù)雜度為()。for(i=1;i<=n;i++)?x++;A.O(1)B.O(n2)C.O(n)D.O(n3)3、以下哪種邏輯結(jié)構(gòu)關(guān)系最松散() A.集合B.線性C.樹D.圖4、以下哪種線性表的存儲地址一定是連續(xù)的()A.有序表B.順序表C.單鏈表D.雙鏈表5、帶頭指針的循環(huán)鏈表在表尾插入,時間復(fù)雜性()A.O(1)B.O(n)C.O(n2)D.O(n3)6、設(shè)結(jié)點結(jié)構(gòu)為(dat(yī)a,next),L是帶頭結(jié)點和尾指針的單循環(huán)鏈表,L->last是表尾結(jié)點指針。若想刪除鏈表的首元結(jié)點,則應(yīng)執(zhí)行下列()操作?A.s=L->last;L->last=L->last->next;free(s);B.L->last=L->last->next;free(L->last);C.L->last=L->last->next->next;free(L->last);D.s=L->last->next->next;L->last->next->next=s->next;free(s);7、帶頭結(jié)點的單鏈表L為空的鑒定條件是()A.L->next==NULL;B.L!=NULL;C.L->next==L;D.L==NULL;8、設(shè)結(jié)點結(jié)構(gòu)為(prior,dat(yī)a,next),L是不帶頭結(jié)點循環(huán)雙鏈表,L是表頭結(jié)點指針。若想刪除循環(huán)雙鏈表中p結(jié)點的后繼結(jié)點(假設(shè)存在),則應(yīng)執(zhí)行下列()操作?A.p->next=p->next->next;B.p->next=p->next->next;p->next->prior=p;C.p->next=p->next->next;p->next->next->prior=p;D.p->next->prior=p;p->next=p->next->next;9、若在線性表中經(jīng)常涉及插入刪除操作,則采用以下哪種表進行元素存儲比較好()?A.有序表B.順序表C.鏈表D.棧10、在一個長度為n的順序表中插入第i個元素(1<=i<=n+1)時,需向前移動()個元素。A.n-iB.n-i+1C.n-i-1D.i11、假定對元素序列(7,3,5,9,1,12)進行堆排序,并且采用小根堆,則由初始數(shù)據(jù)構(gòu)成的初始堆為()。A.1,3,5,7,9,12B.1,3,5,9,7,12C.1,5,3,7,9,12D.1,5,3,9,12,712、假定一個初始堆為(1,5,3,9,12,7,15,10),則進行第一趟堆排序后得到的結(jié)果為()。A.3,5,7,9,12,10,15,1B.3,5,9,7,12,10,15,1C.3,7,5,9,12,10,15,1D.3,5,7,12,9,10,15,113、在平均情況下速度最快的排序方法為()A.直接選擇排序B.歸并排序C.基數(shù)排序D.快速排序14、若一個元素序列基本有序,則選用()方法較快。A.直接插入排序B.簡樸選擇排序C.歸并排序D.快速排序15、對1000個元素進行排序,規(guī)定既快又省空間,則以下()算法比較好。A.直接插入排序B.堆排序C.歸并排序D.快速排序16、設(shè)元素的進棧順序為1,2,3,那么以下哪種是不也許的出棧序列。A.123B.132C.312D.31217、棧的插入和刪除操作在()進行。A.棧頂B.棧底C.中間D.任意位置18、隊列中元素的進出原則為()。A.先進先出B.后進先出C.大數(shù)先出D.小數(shù)先出19、對二叉排序樹進行以下哪種遍歷會得到一個有序序列。A.先序遍歷B.中序遍歷C.后序遍歷D.層序遍歷20、由權(quán)值分別為3,8,6,2,5的葉子結(jié)點生成一棵哈夫曼樹,它的帶權(quán)途徑長度為()。A.24???B.48 C.72 ? D.21、在一棵度為3的樹中,度為3的結(jié)點數(shù)為3個,度為2的結(jié)點數(shù)為2個,度為1的結(jié)點數(shù)為3個,則度為0的結(jié)點數(shù)為()個。A.8 ? B.9?? C.6 D.722、在一棵二叉樹上第3層的結(jié)點數(shù)最多為()。A.2? ?B.4? ?C.6 D.823、用順序存儲的方法將完全二叉樹中的所有結(jié)點逐層存放在數(shù)組中R[1..n],結(jié)點R[i]若有右孩子,其右孩子的編號為結(jié)點()。A.R[2i+1] B.R[2i]??C.R[i/2]? D.R[2i-1]24、已知圖中某條途徑上有k個頂點,則該途徑長度為()。A.k-1B.kC.k+1D.2k25、以下()算法用于在有向網(wǎng)中求單源最短途徑。A.普里姆算法B.克魯斯卡爾算法C.迪杰斯特拉算法D.弗洛伊德算法26、在一張有向圖中,若一個頂點的入度為k1,出度為k2,則相應(yīng)鄰接表中該標點單鏈表中的結(jié)點數(shù)為()。A.k1B.k2C.k1+k2D.2(k1+k2)27、設(shè)有7個結(jié)點的無向圖,該圖至少應(yīng)用()條邊能保證是一個連通圖。A.5B.6C.7D.828、10個頂點組成的無向完全圖中,有()條弧。A.45B.90C.100D.20029、對于順序存儲的有序表(5,12,20,26,37,42,46,50,64),若采用折半查找,則查找元素12的比較次數(shù)為()。A.2 ?B.3 C.4??D.530、假定對線性表(38,25,74,52,48)進行哈希存儲,采用H(k)=k%7作為哈希函數(shù),采用開放定址法解決沖突,則在建立哈希表的過程中,將會碰到()次存儲沖突。A.4? B.5 C.6 ?D.7二、程序完型填空題10%(請將答案填入答題卡相應(yīng)位置,1題5空,每空2分,共10分)得分已知圖的鄰接表定義如下:constMAX_VERTEX_NUM=20;typedefstructArcNode{?intadjvex;?structArcNode*nextarc; intinfo;//InfoType*info;}ArcNode;//邊結(jié)點typedefcharVertexType;typedefstructVNode{?VertexTypedata; ArcNode*firstarc;}VNode,AdjList[MAX_VERTEX_NUM];//頂點數(shù)組中的頂點結(jié)點typedefstruct{?AdjListvertices; intvexnum,arcnum;}ALGraph;//圖請將下列有向圖的創(chuàng)建算法補充完整:voidCreateUDG(ALGraph*G){//假設(shè)所需變量皆已經(jīng)定義 scanf("%d,%d",&(G->vexnum),&(G->arcnum));//輸入圖的頂點數(shù)與弧數(shù)?//構(gòu)造頂點數(shù)組?for(i=0;i<G->vexnum;i++) {? getchar();//吸取輸入的回車符??scanf("%c",___(1)___);//輸入圖的頂點信息??___(2)___; }//構(gòu)造邊結(jié)點?for(k=0;k<G->arcnum;k++)?{ getchar();//吸取回車符? scanf("%c,%c",&v1,&v2);//輸入弧的兩個端點??i=LocateVex(G,v1);//起點的編號??j=LocateVex(G,v2);//終點的編號 pi=___(3)___; pi->adjvex=___(4)___; pi->nextarc=___(5)___;? G->vertices[i].firstarc=pi; }}(1)A.&(G->vertices[j].data)B.&(G->vertices[i].data)C.&(G->vertices[j].adjvex)D.&(G->vertices[i].adjvex)(2)A.G->vexnum++B.此處不需要添加代碼C.G->data[i].firstarc=NULLD.G->vertices[i].firstarc=NULL(3)A.newNodeB.newVNodeC.newArcNodeD.newALGraph(4)A.iB.jC.v1D.v2(5)A.G->vertices[i].firstarcB.G->vertices[j].firstarcC.G->vertices[i].nextarcD.G->vertices[j].nextarc三、填空題30%(請將答案填入答題卡相應(yīng)位置,除第3題第一空為4分外,其余都為2分,共30分)得分1、已知記錄(46,74,53,14,26,38,86,65,27,34),請給出歸并排序的第一趟排序結(jié)果(以第一個元素作為基準):______2、從一棵二叉排序樹中查找一個元素時,若元素的值大于根結(jié)點的值,則繼續(xù)向______查找。3、假設(shè)一棵二叉樹的后序序列為DCEGBFHKJIA,中序序列為DCBGEAHFIJK,請畫出該二叉樹______(4分),并寫出該二叉樹的先序遍歷序列______。4、已知二叉樹的二叉鏈表表達法定義如下:typedefcharTElemType;typedefstructBiTnode{TElemTypedata;structBiTnode*lchild,*rchild;}BiTNode,*BiTree;請將下列二叉樹的查找算法補充完整:intLocateElem(BiTreeT,TElemTypee)//e為要查找的元素{?intfloor;//用于記錄層數(shù)?if(T)//若樹不空 {if(___(1)___)//若在根處找到? ?return1;? floor=Locat(yī)eElem(___(2)___);//在左子樹查找 ?if(floor>0)//若在左子樹中找到? ?return___(3)___;??floor=LocateElem(___(4)___);? if(floor>0) ?return___(5)___; } return0;//若樹為空,則直接返回0,說明找不到}5、已知圖的鄰接表定義如第二題所示,下列程序段為圖的深度優(yōu)先搜索算法,請將算法中缺失的語句補充完整:voidDFS(ALGraphG,intv)//從編

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論