樹據(jù)結構模擬試卷3套期末考試卷試題帶答案_第1頁
樹據(jù)結構模擬試卷3套期末考試卷試題帶答案_第2頁
樹據(jù)結構模擬試卷3套期末考試卷試題帶答案_第3頁
樹據(jù)結構模擬試卷3套期末考試卷試題帶答案_第4頁
樹據(jù)結構模擬試卷3套期末考試卷試題帶答案_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

試卷一一、選擇題(本題共30分,每題2分)1.計算機識別、存儲和加工處理的對象被統(tǒng)稱為________。A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)結構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所指向結點的后繼結點,則執(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.下面關于線性表的敘述錯誤的是________。 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.下列查找方法中哪一種不適合元素的鏈式存儲結構________。A.順序查找B.分塊查找C.二分查找D.散列查找11.下列排序算法中,不能保證每趟排序至少能將一個元素放到其最終的位置上的算法是________。快速排序B.希爾排序C.堆排序D.冒泡排序12.設一棵二叉樹的深度為k,則該二叉樹中最多有________個結點。 A.2k-1 B.2k C.2k-1 D.2k-113.下列四個選項中,能構成堆的是________。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)常需要對線性表進行查找操作,則最好采用________存儲結構。某帶頭結點單鏈表的頭指針為L,判定該單鏈表非空的條件________________。數(shù)據(jù)的邏輯結構包括集合、________、________和圖狀結構四種類型。圖的兩種遍歷方式為:廣度優(yōu)先遍歷和_______________。線性表的鏈式存儲結構中的結點包含________域和________域。向一棵二叉搜索樹中插入一個元素時,若元素的值小于根結點的值,則應把它插入到根結點的_______上。下面程序段的功能實現(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。給定的關鍵字為1,13,12,34,38,33,2,22。試畫出用線性探查法解決沖突時所構造的散列表。并計算在查找成功時候的平均查找長度。(6分)2.有一組權值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í)行下列排序算法的各趟排序結束時,關鍵字序列的狀態(tài):(10分)(1)直接插入排序(2)基數(shù)排序5.對于下面所示的連通圖,寫出由Prim算法生成的最小生成樹。(5分)6.將下面的樹轉化為一棵二叉樹,并寫出對二叉樹進行層序遍歷的序列。(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)線性結構樹形結構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.線性表采用鏈式存儲時,結點的存儲地址()。A.必須是不連續(xù)的B.部分地址必須是連續(xù)的C.連續(xù)與否均可D.和頭結點的存儲地址相連續(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.不能確定關系7.用鏈表表示線性表的優(yōu)點是()便于隨機存取便于插入和刪除操作花費的存儲空間較順序存儲少元素的物理順序與邏輯順序相同8.在一個具有n個頂點的無向圖中,要連通全部頂點至少需要多少條邊()。A.n(n-1)/2B.n-1C.nD.n+19.下列查找方法中哪一種不適合元素的鏈式存儲結構()A.順序查找B.分塊查找C.二分查找D.散列查找10.下面哪種排序方法穩(wěn)定性最好()。A.希爾排序B.冒泡排序C.快速排序D.堆排序二、填空題(本題共20分)1.數(shù)據(jù)的邏輯結構可以分為兩大類:_________和________。2.在二叉樹的第i層上最多有___________個結點。3.無向圖中恰好有__________條邊,才稱為無向完全圖。4.用單鏈表方式存儲的線性表,存儲每個結點需要有兩個域,一個是_________,另一個是________。5.設二維數(shù)組A5×6的每個元素占4個字節(jié),已知LOC(a00)=1000,則A一共占用_______字節(jié)。如果按行優(yōu)先存儲時,a25的起始地址是_________。6.3個結點的樹有_______種形態(tài),3個結點的二叉樹有________種形態(tài)。7.一個廣義表為(a,(a,b),d,e,((i,j),k)),則該廣義表的深度為________。8.棧的插入操作在_______進行,刪除操作在_______進行。9.在二叉樹中,結點的最大度數(shù)是_______。10.判定一個有向圖中是否存在回路,即是否含有環(huán),可以使用_________方法。11.二分查找的效率較高,但是要求查找表中的關鍵字_______,并且要求表的存儲為________。12.在構造散列表的過程中,不可避免會出現(xiàn)沖突,通常解決它的方法有_______和_______。13.從任何一個結點開始都能成功查找其他結點的單鏈表是表。三、應用題(本題共50分,每題10分)1.一棵二叉樹如右面的圖所示,要求:(1)寫出對此二叉樹進行中序遍歷時得到的結點序列。(2)畫出由此二叉樹轉換得到的森林。2.已知圖G的鄰接表如下,寫出從頂點O出發(fā)的深度優(yōu)先和廣度優(yōu)先遍歷的頂點序列。0021310022030130203.對于下面所示的連通圖,寫出由Prim算法生成的最小生成樹。4.下圖所示為AOE網(wǎng),求其關鍵路徑和關鍵活動。四、算法填空題(本題共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)線性結構,非線性結構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分關鍵路徑是:V1-V3-V4-V6---------2分關鍵活動是: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分試卷三一、單項選擇題(在下列每小題四個備選答案中選出一個正確答案,并將其字母標號填入題干的括號內。每小題2分,共30分)1.數(shù)據(jù)結構可以形式化地定義為(S,△),其中S指某種邏輯結構,△是指()A.S上的算法 B.S的存儲結構C.在S上的一個基本運算集 D.在S上的所有數(shù)據(jù)元素2.下列說法正確的是()A.線性表的邏輯順序與存儲順序總是一致的B.線性表的鏈式存儲結構中,要求內存中可用的存儲單元可以是連續(xù)的,也可以不連續(xù)C.線性表的線性存儲結構優(yōu)于鏈式存儲結構D.每種數(shù)據(jù)結構都具有插入、刪除和查找三種基本運算3.稀疏矩陣一般采用()方法壓縮存儲。A.三維數(shù)組 B.單鏈表C.三元組表 D.散列表4.在一個單鏈表中,若p↑結點不是最后結點,在p↑之后插入s↑結點,則實行()。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為雙向鏈表中指向直接前趨結點和直接后繼結點的指針域,現(xiàn)要把一個指針s所指的新結點作為非空雙鏈表中q所指地點(中間結點)的直接后繼結點插入到該雙向鏈表中,則下列算法段能正確完成上述要求的是()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.由下列三棵樹組成轉的森林換成一棵二叉樹為()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是指向非空帶表頭結點的循環(huán)鏈表的頭指針,p是輔助指針。執(zhí)行程序段p=h;while(p->next->next!=h)p=p->next;p->next=h;后(其中,p->next為p指向結點的指針域),則()A.p->next指針指向鏈尾結點 B.h指向鏈尾結點C.刪除鏈尾前面的結點 D.刪除鏈尾結點15.某二叉樹的先根遍歷序列和后根遍歷序列正好相反,則該二叉樹具有的特征是()A.高度等于其結點數(shù) B.任一結點無左孩子C.任一結點無右孩子 D.空或只有一個結點二、填空題(本大題共13小題,每小題2分,共26分)請在每小題的空格中填上正確答案。錯填、不填均無分。16.數(shù)據(jù)的邏輯結構通常包括集合、線性結構、____________和圖狀結構。17.給定n個值構造哈夫曼樹。根據(jù)哈夫曼算法,初始森林中共有n棵二叉樹,經(jīng)過次合并后才能使森林中的二叉樹的數(shù)目由n棵減少到只剩下一棵最終的哈夫曼樹。18.樹型結構結點間通過“父子”關系相互關聯(lián),這種相互關聯(lián)構成了數(shù)據(jù)間的關系。19.在一個具有n個結點的單鏈表中查找值為m的某結點,若查找成功,則需平均比較的結點數(shù)為____________。20.數(shù)據(jù)表示和________________是程序設計者所要考慮的兩項基本任務。21.在循環(huán)隊列中,存儲空間為0~n-1。設隊頭指針front指向隊頭元素前一個空閑元素,隊尾指針指向隊尾元素,那么其隊空標志為rear=front,隊滿標志為_________。22.深度為k的二叉樹至多有_________個結點,最少有_________個結點。23.在堆排序和快速排序中,若原始記錄已基本有序,則較適合選用。24.在一棵二叉排序樹上按____________遍歷得到的結點序列是一個有序序列。25.實現(xiàn)二分查找的存儲結構僅限于順序存儲結構,且其中元素排列必須是____________的。26.三個結點可構成________種不同形態(tài)的二叉樹。27.設需將一組數(shù)據(jù)按升序排序。在無序區(qū)中依次比較相鄰兩個元素ai和ai+1的值,若ai的值大于ai+1的值,則交換ai和ai+1。如此反復,直到某一趟中沒有記錄需要交換為止,該排序方法被稱為_________。28.對于一棵具有n個結點的二叉樹,當進行鏈接存儲時,其二叉鏈表中的指針域的總數(shù)為2n個,其中________個用于鏈接孩子結點。三、應用題(本大題共5小題,每小題6分,共30分)29.已知一棵二叉樹的前序序列是ABCDEFG,中序序列是CBDAEGF。請構造出該二叉樹,并給出該二叉樹的后序序列。30.有一字符串序列為5*-x-y/x+2,利用棧的運算將其輸出結果變?yōu)?x-*yx+/-2,試寫出該操作的入棧和出棧過程(采用push(a)表示a入棧,pop(a)表示a出棧)。31.已知某二叉樹的順序存儲結構如圖所示,試畫出該二叉樹,并畫出其二叉鏈表表示。ABCDEFG32.已知一組鍵值序列為(38,64,73,52,40,37,56,43),試采用快速排序法對該組序列作升序排序,并給出每一趟的排序結果。33.請按照數(shù)列{28,45,33,12,37,20,18,55}的先后插入次序,生成一棵二叉排序樹。四、算法設計題(本大題共3小題,共14分)34.試編寫一算法,以完成在帶頭結點單鏈表L中第i個位置前插入元素X的操作。(4分)35.某帶頭結點的單鏈表的結點結構說明如下:(6分)typedefstructnode1{intdata;structnode1*next}node;試設計一個算法intcopy(node*head1,node*head2),將以head1為頭指針的單鏈表復制到一個不帶頭結點且以head2為頭指針的單鏈表中。36.若二叉樹存儲結構采用二叉鏈表表示,試編寫一算法,計算一棵二叉樹的所有結點數(shù)。(4分)參考答案一、選擇題(本題共30分,每題2分)1、C2、B3、C4、B5、B6、C7、B8、C9、A10、C11、B12、D13、C14、D15、A二、填空題(本題共26分,每小題2分)16、樹狀結構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趟:37

溫馨提示

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

評論

0/150

提交評論