版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
試卷一一、選擇題(本題共30分,每題2分)1.計算機識別、存儲和加工處理的對象被統(tǒng)稱為________。A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)結(jié)構(gòu)D.數(shù)據(jù)類型2.已知一棧的進棧序列為:1234,則下列哪個序列為不可能的出棧序列________。A.1234 B.4321C.2143 D.41233.鏈表不具有的特點是________。A.隨機訪問B.不必事先估計所需存儲空間大小C.插入與刪除時不必移動元素D.所需空間與線性表長度成正比4.設InitQueue(Q)、EnQueue(Q,e)、DeQueue(Q,e)分別表示隊列初始化、入隊和出隊的操作。經(jīng)過以下隊列操作后,隊頭的值是________InitQueue(Q);EnQueue(Q,a);EnQueue(Q,b);EnQueue(Q,c);DeQueue(Q,x)A.aB.bC.NULLD.x5.在一個單鏈表HL中,若要刪除由指針q所指向結(jié)點的后繼結(jié)點,則執(zhí)行________。A.p=q->next;p->next=q->next;free(p);B.p=q->next;q->next=p;free(p);C.p=q->next;q->next=p->next;free(p);D.q->next=q->next->next;q->next=q;free(p);6.一個順序表第一個元素的存儲地址是100,每個元素占2個存儲單元,則第5個元素的地址是________。A.110B.108C.100D.1207.在一個長度為n的順序存儲的線性表中,在其第i個位置插入一個新元素時,需要移動元素的次數(shù)是________。A.n-iB.n-i+1C.n-i-1D.i8.下面關(guān)于線性表的敘述錯誤的是________。 A.線性表采用順序存儲必須占用一片連續(xù)的存儲空間 B.線性表采用鏈式存儲不必占用一片連續(xù)的存儲空間C.線性表采用鏈式存儲便于插入和刪除操作的實現(xiàn)D.線性表采用順序存儲便于插入和刪除操作的實現(xiàn)9.Push(e)表示e進棧,Pop(e)表示退棧并將棧頂元素存入e。下面的程序段可以將A,B的值交換的操作序列是________。A.Push(A)Push(B)Pop(A)Pop(B)B.Push(A)Push(B)Pop(B)Pop(A)C.Push(A)Pop(B)Push(B)Pop(A)D.Push(B)Pop(A)Push(A)Pop(B)10.下列查找方法中哪一種不適合元素的鏈式存儲結(jié)構(gòu)________。A.順序查找B.分塊查找C.二分查找D.散列查找11.下列排序算法中,不能保證每趟排序至少能將一個元素放到其最終的位置上的算法是________??焖倥判駼.希爾排序C.堆排序D.冒泡排序12.設一棵二叉樹的深度為k,則該二叉樹中最多有________個結(jié)點。 A.2k-1 B.2k C.2k-1 D.2k-113.下列四個選項中,能構(gòu)成堆的是________。A.75,65,30,15,25,45,20,10B.75,65,45,10,30,25,20,15C.75,45,65,30,15,25,20,10D.75,45,65,10,25,30,20,1514.在一個具有n個頂點的無向圖中,要連通全部頂點至少需要多少條邊________。A.n(n-1)/2B.n-1C.nD.n+115.棧和隊列的共同特點是________。A.都是操作受限的線性表B.都是先進后出C.都是后進先出D.無共同點二、填空題(本題共10分,每空1分)若經(jīng)常需要對線性表進行查找操作,則最好采用________存儲結(jié)構(gòu)。某帶頭結(jié)點單鏈表的頭指針為L,判定該單鏈表非空的條件________________。數(shù)據(jù)的邏輯結(jié)構(gòu)包括集合、________、________和圖狀結(jié)構(gòu)四種類型。圖的兩種遍歷方式為:廣度優(yōu)先遍歷和_______________。線性表的鏈式存儲結(jié)構(gòu)中的結(jié)點包含________域和________域。向一棵二叉搜索樹中插入一個元素時,若元素的值小于根結(jié)點的值,則應把它插入到根結(jié)點的_______上。下面程序段的功能實現(xiàn)數(shù)據(jù)x進棧,要求在下劃線處填上正確的語句。typedefstruct{intstack[100];inttop;}seqstack;voidpush(seqstack*s,intx){if(s->top==99)printf(“overflow”);else{_____(1)_______________;__(2)_______________;}}三、應用題(本題共40分)1.設散列表長度為11,散列函數(shù)h(key)=key%11。給定的關(guān)鍵字為1,13,12,34,38,33,2,22。試畫出用線性探查法解決沖突時所構(gòu)造的散列表。并計算在查找成功時候的平均查找長度。(6分)2.有一組權(quán)值14、21、32、15、28,畫出哈夫曼樹,并計算其WPL。(6分)3.已知圖G=(V,E),其中V={1,2,3,4,5},E={(1,2),(1,3),(1,4),(2,3),(2,5),(3,4),(4,5)}。要求完成如下操作:(6分)(1)寫出圖的鄰接矩陣(2)寫出采用鄰接矩陣存儲時,從頂點1出發(fā)的廣度優(yōu)先搜索遍歷序列。4.已知序列{503,87,512,61,908,170,897,275,653,462},分別寫出執(zhí)行下列排序算法的各趟排序結(jié)束時,關(guān)鍵字序列的狀態(tài):(10分)(1)直接插入排序(2)基數(shù)排序5.對于下面所示的連通圖,寫出由Prim算法生成的最小生成樹。(5分)6.將下面的樹轉(zhuǎn)化為一棵二叉樹,并寫出對二叉樹進行層序遍歷的序列。(7分)AABCDEFGH四、算法題(本題共20分)1.完成中序遍歷二叉樹。Typedefstructnode{Chardata;Structnode*lchild;Structnode*rchild;}BTreeNode,*LinkBtree;VoidInOrder(LinkBtreeBt_pointer){If(Bt_pointer!=NULL){_________(1)_____________;__________(2)_____________;__________(3)____________;}}2.完成二分查找算法:#Definen10typedefintKeyType;typedefstruct{KeyTypekey;}NodeType;TypedefNodeTypeSeqList[n+1];intBinSearch(SeqListR,KeyTypek){intlow=1,high=n,mid;while(_____(4)_______){mid=(low+high)/2;if(R[mid].key==k)returnmid;if(R[mid].key>k)_____(5)_____;else________(6)_______;}return0;}3.編寫算法實現(xiàn)直接插入排序。(8分)參考答案一、選擇題(本題共30分,每題2分)123456789101112131415ADABCBBDACBDCBA二、填空題(本題共10分,每空1分)1)順序2)L->next!=NULL3)線性結(jié)構(gòu)樹形結(jié)構(gòu)4)深度優(yōu)先遍歷5)數(shù)據(jù)指針6)左子樹7)s->top++s->stack[s->top]=x三、應用題(本題共40分)1、(6分)H(1)=1H(13)=2H(12)=1沖突,H1=2沖突,H2=3H(34)=1沖突,H1=2沖突,H2=3沖突,H3=4H(38)=5H(33)=0H(2)=2沖突,H1=3沖突,H2=4沖突,H3=5沖突,H4=6H(22)=0沖突,H1=1沖突,H2=2沖突,H3=3沖突,H4=4沖突,H5=5沖突,H6=6沖突,H7=7ASL=(1+1+3+4+1+1+5+8)/8=24/8=32、(6分)1101104961212829321415Wpl=2493、圖的鄰接矩陣:(3分)廣度優(yōu)先序列:12345(3分)01110101011101010101010104、1)(503)8751261908170897275653462(5分)(87503)51261908170897275653462(87503512)61908170897275653462(6187503512)908170897275653462(6187503512908)170897275653462(6187170503512908)897275653462(6187170503512897908)275653462(6187170275503512897908)653462(6187170275503512653897908)462(6187170275462503512653897908)2)第一趟:1706151246250365327587897908(5分)第二趟:5039085126536146217027587897第三趟:61871702754625035126538979085、(5分)ABDABDEFGHC層序遍歷序列:ABECFDGH四、算法題(本題共20分)1、(1)InOrder(Bt_pointer->lchild);(2分)(2)printf(“%c”,Bt_pointer->data);(2分)(3)InOrder(Bt_pointer->rchild);(2分)2、(4)low<=high(5)high=mid-1;(6)low=mid+1;(6分)3、voidInsertSort(inta[],intn)(8分){inti,j;for(i=2;i<=n;i++){a[0]=a[i];j=i-1;while(a[0]<a[j]){a[j+1]=a[j];j--;}a[j+1]=a[0];}}試卷二一、選擇題(本題共20分,每題2分)1.下面程序段的時間復雜度為()。for(i=1;i<=n;i++)for(j=1;j<=n;j++)s++;A.O(n)B.O(n2)C.O(2*n)D.O(i*j)2.線性表采用鏈式存儲時,結(jié)點的存儲地址()。A.必須是不連續(xù)的B.部分地址必須是連續(xù)的C.連續(xù)與否均可D.和頭結(jié)點的存儲地址相連續(xù)3.若讓元素1,2,3依次進棧,則出棧時的序列不可能出現(xiàn)的是()。A.3,2,1B.1,2,3C.3,1,2D.2,1,34.下面說法不正確的是()A.串S1=“this_is_a_string”的長度是16。B.串S2=“this”是串S1的子串。C.串S3=“thisis”在串S1中的位置是1。D.串S4=“a”在串S1中的位置是9。5.一個非空廣義表的表頭()。A.不可能是子表B.只能是子表C.只能是原子D.可以是子表或原子6.完全二叉樹()滿二叉樹A.不一定是B.一定不是C.一定是D.不能確定關(guān)系7.用鏈表表示線性表的優(yōu)點是()便于隨機存取便于插入和刪除操作花費的存儲空間較順序存儲少元素的物理順序與邏輯順序相同8.在一個具有n個頂點的無向圖中,要連通全部頂點至少需要多少條邊()。A.n(n-1)/2B.n-1C.nD.n+19.下列查找方法中哪一種不適合元素的鏈式存儲結(jié)構(gòu)()A.順序查找B.分塊查找C.二分查找D.散列查找10.下面哪種排序方法穩(wěn)定性最好()。A.希爾排序B.冒泡排序C.快速排序D.堆排序二、填空題(本題共20分)1.數(shù)據(jù)的邏輯結(jié)構(gòu)可以分為兩大類:_________和________。2.在二叉樹的第i層上最多有___________個結(jié)點。3.無向圖中恰好有__________條邊,才稱為無向完全圖。4.用單鏈表方式存儲的線性表,存儲每個結(jié)點需要有兩個域,一個是_________,另一個是________。5.設二維數(shù)組A5×6的每個元素占4個字節(jié),已知LOC(a00)=1000,則A一共占用_______字節(jié)。如果按行優(yōu)先存儲時,a25的起始地址是_________。6.3個結(jié)點的樹有_______種形態(tài),3個結(jié)點的二叉樹有________種形態(tài)。7.一個廣義表為(a,(a,b),d,e,((i,j),k)),則該廣義表的深度為________。8.棧的插入操作在_______進行,刪除操作在_______進行。9.在二叉樹中,結(jié)點的最大度數(shù)是_______。10.判定一個有向圖中是否存在回路,即是否含有環(huán),可以使用_________方法。11.二分查找的效率較高,但是要求查找表中的關(guān)鍵字_______,并且要求表的存儲為________。12.在構(gòu)造散列表的過程中,不可避免會出現(xiàn)沖突,通常解決它的方法有_______和_______。13.從任何一個結(jié)點開始都能成功查找其他結(jié)點的單鏈表是表。三、應用題(本題共50分,每題10分)1.一棵二叉樹如右面的圖所示,要求:(1)寫出對此二叉樹進行中序遍歷時得到的結(jié)點序列。(2)畫出由此二叉樹轉(zhuǎn)換得到的森林。2.已知圖G的鄰接表如下,寫出從頂點O出發(fā)的深度優(yōu)先和廣度優(yōu)先遍歷的頂點序列。0021310022030130203.對于下面所示的連通圖,寫出由Prim算法生成的最小生成樹。4.下圖所示為AOE網(wǎng),求其關(guān)鍵路徑和關(guān)鍵活動。四、算法填空題(本題共10分)下列兩個算法分別為二分查找算法和冒泡排序算法,閱讀下面程序代碼,填充空白位置,使算法完整。#Definen10typedefintKeyType;typedefstruct{KeyTypekey;}NodeType;typedefNodeTypeSeqList[n+1];1.intBinSearch(SeqListR,KeyTypek){intlow=1,high=n,mid;while(low<=high){mid=(low+high)/2;if(R[mid].key==k)returnmid;if(R[mid].key>k)______1_____;else________2_______;}return0;}2.voidBubbleSort(SeqListR){inti,jBooleanexchange;For(i=1;i<n;i++){exchange=false;for(j=1;j<=n-I;j++)if(R[j+1].key<R[j].key){_______3_____;______4______;R[j]=R[0];________5__________}if(!exchange)return;}}參考答案一、選擇題(本題共20分,每題2分)12345678910BCCCDAbBCB二、填空題(本題共20分,每空1分)1)線性結(jié)構(gòu),非線性結(jié)構(gòu)2)2i-13)n(n-1)/24)數(shù)據(jù)域,指針域5)1120,10686)2,57)58)棧頂,棧頂9)210)拓撲排序11)有序,順序存儲12)開放定址法,拉鏈法13)單循環(huán)鏈表三、應用題(本題共50分)1)DEFBAC--------8分―――――――8分2)深度優(yōu)先遍歷:0231―――――6分廣度優(yōu)先遍歷:0213――――6分3)--------12分4)頂點vevl活動ell-eV100a1011V234a2000V322a3341V466a4341V567a5220V688a6253a7660a8671---------6分關(guān)鍵路徑是:V1-V3-V4-V6---------2分關(guān)鍵活動是:a2,a5,a7---------2分四、算法填空題(本題共10分,每空2分)1)high=mid-1;---------2分2)low=mid+1;---------2分3)R[0]=R[j+1];---------2分4)R[j+1]=R[j];---------2分5)exchange=true;---------2分試卷三一、單項選擇題(在下列每小題四個備選答案中選出一個正確答案,并將其字母標號填入題干的括號內(nèi)。每小題2分,共30分)1.數(shù)據(jù)結(jié)構(gòu)可以形式化地定義為(S,△),其中S指某種邏輯結(jié)構(gòu),△是指()A.S上的算法 B.S的存儲結(jié)構(gòu)C.在S上的一個基本運算集 D.在S上的所有數(shù)據(jù)元素2.下列說法正確的是()A.線性表的邏輯順序與存儲順序總是一致的B.線性表的鏈式存儲結(jié)構(gòu)中,要求內(nèi)存中可用的存儲單元可以是連續(xù)的,也可以不連續(xù)C.線性表的線性存儲結(jié)構(gòu)優(yōu)于鏈式存儲結(jié)構(gòu)D.每種數(shù)據(jù)結(jié)構(gòu)都具有插入、刪除和查找三種基本運算3.稀疏矩陣一般采用()方法壓縮存儲。A.三維數(shù)組 B.單鏈表C.三元組表 D.散列表4.在一個單鏈表中,若p↑結(jié)點不是最后結(jié)點,在p↑之后插入s↑結(jié)點,則實行()。A.s↑.next:=p;p↑.next=s;B.s↑.next:=p↑.next;p↑.next:=s;C.s↑.next:=p↑.next;p:=s;D.p↑.next:=s;s↑.next=p;5.某個向量第一元素的存儲地址為100,每個元素的長度為2,則第五個元素的地址是()。A.110B.108C.100D.1206.下面的二叉樹中,()不是完全二叉樹。7.一組記錄的排序碼為(47、78、61、33、39、80),則利用堆排序的方法建立的初始堆為()。A.78、47、61、33、39、80B.80、78、61、33、39、47C.80、78、61、47、39、33D.80、61、78、39、47、338.假設left和right為雙向鏈表中指向直接前趨結(jié)點和直接后繼結(jié)點的指針域,現(xiàn)要把一個指針s所指的新結(jié)點作為非空雙鏈表中q所指地點(中間結(jié)點)的直接后繼結(jié)點插入到該雙向鏈表中,則下列算法段能正確完成上述要求的是()A.q->right=s;s->left=q;q->right->left=s;s->right=q->right;B.s->left=q;q->right=s;q->right->left=s;s->right=q->right;C.s->left=q;s->right=q->right;q->right->left=s;q->right=s;D.以上都不對9.由下列三棵樹組成轉(zhuǎn)的森林換成一棵二叉樹為()10.for(i=0;i<m;i++)for(j=0;j<t;j++)c[i][j]=0;for(i=0;i<m;i++)for(j=0;j<t;j++)for(k=0;k<n;k++)c[i][j]=c[i][j]+a[i][k]*b[k][j];上列程序的時間復雜度為()A.O(m+n×t) B.O(m+n+t)C.O(m×n×t) D.O(m×t+n)11.設循環(huán)隊列的元素存放在一維數(shù)組Q[0‥30]中,隊列非空時,front指示隊頭元素的前一個位置,rear指示隊尾元素。如果隊列中元素的個數(shù)為11,front的值為25,則rear應指向的元素是()A.Q[4] B.Q[5] C.Q[14] D.Q[15]12.定義二維數(shù)組A[1‥8,0‥10],起始地址為LOC,每個元素占2L個存儲單元,在以行序為主序的存儲方式下,某數(shù)據(jù)元素的地址為LOC+50L,則在以列序為主序的存儲方式下,該元素的存儲地址為()A.LOC+28L B.LOC+36L C.LOC+50L D.LOC+52L13.采用排序算法對n個元素進行排序,其排序趟數(shù)肯定為n-1趟的排序方法是()A.插入和快速 B.冒泡和快速 C.選擇和插入 D.選擇和冒泡14.設h是指向非空帶表頭結(jié)點的循環(huán)鏈表的頭指針,p是輔助指針。執(zhí)行程序段p=h;while(p->next->next!=h)p=p->next;p->next=h;后(其中,p->next為p指向結(jié)點的指針域),則()A.p->next指針指向鏈尾結(jié)點 B.h指向鏈尾結(jié)點C.刪除鏈尾前面的結(jié)點 D.刪除鏈尾結(jié)點15.某二叉樹的先根遍歷序列和后根遍歷序列正好相反,則該二叉樹具有的特征是()A.高度等于其結(jié)點數(shù) B.任一結(jié)點無左孩子C.任一結(jié)點無右孩子 D.空或只有一個結(jié)點二、填空題(本大題共13小題,每小題2分,共26分)請在每小題的空格中填上正確答案。錯填、不填均無分。16.數(shù)據(jù)的邏輯結(jié)構(gòu)通常包括集合、線性結(jié)構(gòu)、____________和圖狀結(jié)構(gòu)。17.給定n個值構(gòu)造哈夫曼樹。根據(jù)哈夫曼算法,初始森林中共有n棵二叉樹,經(jīng)過次合并后才能使森林中的二叉樹的數(shù)目由n棵減少到只剩下一棵最終的哈夫曼樹。18.樹型結(jié)構(gòu)結(jié)點間通過“父子”關(guān)系相互關(guān)聯(lián),這種相互關(guān)聯(lián)構(gòu)成了數(shù)據(jù)間的關(guān)系。19.在一個具有n個結(jié)點的單鏈表中查找值為m的某結(jié)點,若查找成功,則需平均比較的結(jié)點數(shù)為____________。20.數(shù)據(jù)表示和________________是程序設計者所要考慮的兩項基本任務。21.在循環(huán)隊列中,存儲空間為0~n-1。設隊頭指針front指向隊頭元素前一個空閑元素,隊尾指針指向隊尾元素,那么其隊空標志為rear=front,隊滿標志為_________。22.深度為k的二叉樹至多有_________個結(jié)點,最少有_________個結(jié)點。23.在堆排序和快速排序中,若原始記錄已基本有序,則較適合選用。24.在一棵二叉排序樹上按____________遍歷得到的結(jié)點序列是一個有序序列。25.實現(xiàn)二分查找的存儲結(jié)構(gòu)僅限于順序存儲結(jié)構(gòu),且其中元素排列必須是____________的。26.三個結(jié)點可構(gòu)成________種不同形態(tài)的二叉樹。27.設需將一組數(shù)據(jù)按升序排序。在無序區(qū)中依次比較相鄰兩個元素ai和ai+1的值,若ai的值大于ai+1的值,則交換ai和ai+1。如此反復,直到某一趟中沒有記錄需要交換為止,該排序方法被稱為_________。28.對于一棵具有n個結(jié)點的二叉樹,當進行鏈接存儲時,其二叉鏈表中的指針域的總數(shù)為2n個,其中________個用于鏈接孩子結(jié)點。三、應用題(本大題共5小題,每小題6分,共30分)29.已知一棵二叉樹的前序序列是ABCDEFG,中序序列是CBDAEGF。請構(gòu)造出該二叉樹,并給出該二叉樹的后序序列。30.有一字符串序列為5*-x-y/x+2,利用棧的運算將其輸出結(jié)果變?yōu)?x-*yx+/-2,試寫出該操作的入棧和出棧過程(采用push(a)表示a入棧,pop(a)表示a出棧)。31.已知某二叉樹的順序存儲結(jié)構(gòu)如圖所示,試畫出該二叉樹,并畫出其二叉鏈表表示。ABCDEFG32.已知一組鍵值序列為(38,64,73,52,40,37,56,43),試采用快速排序法對該組序列作升序排序,并給出每一趟的排序結(jié)果。33.請按照數(shù)列{28,45,33,12,37,20,18,55}的先后插入次序,生成一棵二叉排序樹。四、算法設計題(本大題共3小題,共14分)34.試編寫一算法,以完成在帶頭結(jié)點單鏈表L中第i個位置前插入元素X的操作。(4分)35.某帶頭結(jié)點的單鏈表的結(jié)點結(jié)構(gòu)說明如下:(6分)typedefstructnode1{intdata;structnode1*next}node;試設計一個算法intcopy(node*head1,node*head2),將以head1為頭指針的單鏈表復制到一個不帶頭結(jié)點且以head2為頭指針的單鏈表中。36.若二叉樹存儲結(jié)構(gòu)采用二叉鏈表表示,試編寫一算法,計算一棵二叉樹的所有結(jié)點數(shù)。(4分)參考答案一、選擇題(本題共30分,每題2分)1、C2、B3、C4、B5、B6、C7、B8、C9、A10、C11、B12、D13、C14、D15、A二、填空題(本題共26分,每小題2分)16、樹狀結(jié)構(gòu)17、n-118、邏輯19、n/220、數(shù)據(jù)處理21、front==(rear+1)%n22、2k-1,k23、堆排序24、中序25、有序26、527、冒泡排序28、n-1三、應用題(本題共30分,每小題6分)29、ABABCDGFEFE30、push(5);pop(5);push(*);push(-);push(x);pop(x);pop(-);pop(*);push(-);push(y);pop(y);push(/);push(x);pop(x);push(+);pop(+);pop(/);pop(-);push(2);pop(2);ACACDEFG第1趟:[37]38[735240645643]第2趟:3738[4352406456]73第3趟:3738[40]43[526456]73第4趟:3738404352[6456]73第5趟:3738404352[56]6473第6趟:373840435256647331、BACBACDEFGAB∧NULL∧C∧ROOT∧DE∧F∧∧G∧33、282812452018335537四、算法設計題(本題共14分)34、(4分)typedefstructnode*pointer;structnode{datatypedata;pointernext;};typedefpointerlklist;voidinsert_lklist(lklisthead,datatypex,inti){pointer*p,*s;p=head;j=0;while((p->next!=NULL)&&(j<i-1)){p=p->next;j++;}if(j!=i-1){printf("不存在第i個位置");break();}else{s=malloc(size);s->data=x;s->next=p->next;p->next=s;}}35、(6分)intcopy(node*head1,node*head2){Node*p,*s;P=head1->next;If(p!=NULL){*r=malloc(size);r->data=p->data;head2=r;p=p->next;}
else{head2=NULL;Return(0);}While(p!=NULL){*s=malloc(size);s->data=p->data;r->next=s;r=s;p=p->next;}r->next=NULL;return(1);}36、(4分)typedefcharDataType;
typedefstructnode
{
DataTypedata;
structnode*lchild,*rchild;
}BinTNode;
typedefBinTNode*BinTree;
intnodes(BinTreeT)
{
intnum1,num2;
if(T==NULL)return(0);
elseif(T->lchild==NULL&&T->rchild==NULL)return(1);
else
{
num1=nodes(T->lchild);
num2=nodes(T->rchild);
return(num1+num2+1);
}
}試卷A一、選擇題(本題共20分,每小題1分)1.在數(shù)據(jù)結(jié)構(gòu)中,從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分成()。A.動態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C.線性結(jié)構(gòu)和非線性結(jié)構(gòu)D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)2.線性表若采用鏈式存儲結(jié)構(gòu)時,要求內(nèi)存中可用存儲單元的地址()。A.必須是連續(xù)的B.部分地址必須是連續(xù)的C.一定是不連續(xù)的D.連續(xù)不連續(xù)都可以3.不帶頭結(jié)點的單鏈表head為空的判定條件是()。A.head==NULLB.head->next==NULLC.head->next==headD.head!=NULL4.在一個單鏈表中,已知q所指結(jié)點是p所指結(jié)點的前驅(qū)結(jié)點,若在q和p之間插入s結(jié)點,則執(zhí)行()。A.s-next=p-next;p-next=s;B.p->next=s->next;s-next=p;C.q->next=s;s->next=p;D.p-next=s;s->next=q;5.從一個具有n個結(jié)點的單鏈表中查找其值等于x結(jié)點時,在查找成功的情況下,需平均比較()個結(jié)點。A.nB.n/2C.(n-1)/2D.(n+1)/26.一個棧的入棧序列是a,b,c,d,e,則棧的不可能的輸出序列是()。A.edcbaB.decbaC.dceabD.abcde7.判定一個循環(huán)隊列QU(最多元素為m0)為滿隊列的條件是()。A.QU->front==QU->rearB.QU->front!=QU->rearC.QU->front==(QU->rear+1)%m0D.QU->front!=(QU->rear+1)%m08.棧和隊列的共同點是()。A.都是先進后出B.都是先進先出C.只允許在端點處插入和刪除元素D.沒有共同點9.數(shù)組A中,每個元素A的長度為3個字節(jié),行下標i從1到8,列下標j從1到10,從首地址SA開始連續(xù)存放在存儲器內(nèi),該數(shù)組按行存放時,元素A[8][5]的起始地址為()。A.SA+141B.SA+144C.SA+222D.SA+22510.廣義表((a,b),c,d)的表尾是()。A.aB.bC.(a,b)D.(c,d)11.設矩陣A是一個對稱矩陣,為了節(jié)省存儲,將其下三角部分(如下圖所示)按行序存放在一維數(shù)組B[1,n(n-1)/2]中,對下三角部分中任一元素ai,j(i≥j),在一維數(shù)組B的下標位置k的值是()。A.i(i-1)/2+j-1B.i(i-1)/2+jC.i(i+1)/2+j-1D.i(i+1)/2+j13.已知某二叉樹的后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是()。A.acbedB.decabC.deabcD.cedba12.如下圖所示的4棵二叉樹中,()不是完全二叉樹。14.按照二叉樹的定義,具有3個結(jié)點的二叉樹有()種。A.3B.4C.5D.615.設高度為h的二叉樹上只有度為0和度為2的結(jié)點,則此類二叉樹中所包含的結(jié)點數(shù)至少為()。A.2hB.2h-1C.2h+1D.h+116.在一個有向圖中,所有頂點的入度之和等于所有頂點的出度之和的()倍。A.1/2B.1C.2D.417.在一個具有n個頂點的無向圖中,要連通全部頂點至少需要()條邊。A.nB.n+1C.n-1D.n/218.已知一有向圖的鄰接表存儲結(jié)構(gòu)如下圖所示,根據(jù)有向圖的深度優(yōu)先遍歷算法,從頂點v1出發(fā),所得到的頂點序列是()。A.v1,v2,v3,v5,v4B.v1,v2,v3,v4,v5C.v1,v3,v4,v5,v2D.v1,v4,v3,v5,v219.采用順序查找方法查找長度為n的線性表時,每個元素的平均查找長度為()。A.nB.n/2C.(n+1)/2D.(n-1)/220.快速排序方法在()情況下最不利于發(fā)揮其長處。A.要排序的數(shù)據(jù)量太大B.要排序的數(shù)據(jù)中含有多個相同值C.要排序的數(shù)據(jù)已基本有序D.要排序的數(shù)據(jù)個數(shù)為奇數(shù)二、填空題(本題共20分,每空1分)1.根據(jù)數(shù)據(jù)元素之間的不同特征,通常有四類基本結(jié)構(gòu):_____、______、______和______。2.下面程序段的時間復雜度是:______。for(i=0;i<n;i++)for(j=0;j<m;j++)A[i][j]=0;3.向一個長度為n的線性表中的第i個元素(1≤i≤n)之前插入一個元素時,需向后移動______個元素。4.在一個單鏈表中的p所指結(jié)點之前插入一個s所指結(jié)點時,可執(zhí)行如下操作:(1)s->next=______;(2)p-next=s;(3)t=p->data;(4)p->data=______;(5)s->data=______;5.深度為k的完全二叉樹至少有個結(jié)點,至多有個結(jié)點,若按自上而下,從左到右次序給結(jié)點編號(從1開始),則編號最小的葉子結(jié)點的編號是。6.一個廣義表為(a,(a,b),d,e,((i,j),k)),則該廣義表的深度為________。7.有一棵樹如下圖所示,回答下面的問題:結(jié)點k3的度是;這棵樹的度為;這棵樹的深度是。8.在對一組記錄(54,38,96,23,15,72,60,45,83)進行直接插入排序時,當把第七個記錄60插入到有序表時,為尋找插入位置需比較______次。9.隊列的插入操作在_______進行,刪除操作在_______進行。10.判定一個有向圖中是否存在回路,即是否含有環(huán),可以使用_________方法。三、閱讀程序?qū)懡Y(jié)果(本題共20分,每小題5分)單鏈表中,指針p指向某結(jié)點,執(zhí)行以下操作后,請用一句話描述程序執(zhí)行的結(jié)果是什么?q=p->next;p->data=p->next->data;p->next=p->next->next;free(q);閱讀下面二分查找程序代碼,填充空白位置,使算法完整。intBinSearch(SeqListR,KeyTypek){intlow=1,high=n,mid;while(low<=high){mid=(low+high)/2;if(R[mid].key==k)returnmid;if(R[mid].key>k)____①____;else______②_____;}return0;}如下圖所示給出了圖G及對應的鄰接表,根據(jù)給定的dfs算法,從頂點8出發(fā),寫出其搜索序列。Adjlistgl;voiddfs(intv){structvexnode*p;printf("%d",v);visited[v]=1;p=gl[v]->link;/*gl是該圖的鄰接表的表頭指針數(shù)組*/while(p!=NULL){if(visited[p->adjvex]==0)dfs(p->adjvex);p=p->next;}}二叉樹采用二叉鏈表存儲結(jié)構(gòu),將第四題綜合題3中的二叉樹,運行下面的遞歸算法,請寫出最后的返回結(jié)果是什么?intcount(btree*b){intnum1,num2;if(b==NULL)return(0);elseif(b->left==NULL&&b->right==NULL)return(1);else{num1=count(b->left);num2=count(b->right);return(num1+num2);}}四、綜合題(本題共30分,每小題5分)1.有一份電文中共使用五個字符:a、b、c、d、e,它們的出現(xiàn)頻率依次為{4、7、5、2、9},試畫出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 毫針刺法-針灸學課件南京中醫(yī)藥大學
- 陜西省咸陽市武功縣2023-2024學年八年級上學期期末考試數(shù)學試卷(含解析)
- 中國著名電視劇導演
- 河南許昌普高2025屆高考沖刺模擬語文試題含解析
- 《效績考核與管理》課件
- 14.2《荷塘月色》課件 2024-2025學年統(tǒng)編版高中語文必修上冊-1
- 遼寧省阜蒙縣育才高中2025屆高三適應性調(diào)研考試數(shù)學試題含解析
- 遼寧沈陽市第31中學2025屆高考考前模擬數(shù)學試題含解析
- 海南省華僑中學2025屆高三最后一模英語試題含解析
- 2025屆天津市寶坻區(qū)普通高中高考語文必刷試卷含解析
- 人教版(2024)七年級上冊地理第一章地球?1.1地球的宇宙環(huán)境導學案(含答案)
- 七年級道法上冊第一學期期末綜合測試卷(人教版 2024年秋)
- 小學五年級縮句擴句專題練習1
- 高校畢業(yè)生就業(yè)跟蹤調(diào)查系統(tǒng)的研究
- 超市及煙草證轉(zhuǎn)讓合同
- DL-T5024-2020電力工程地基處理技術(shù)規(guī)程
- (2024版)天翼云從業(yè)者認證考試題庫(多選題)
- 民兵建設形勢分析書面報告
- 地域文化(專科)期末考試-國開(HEB)-參考資料
- PVC地膠施工技術(shù)交底
- 云南非遺擇萃智慧樹知到期末考試答案章節(jié)答案2024年保山學院
評論
0/150
提交評論