數(shù)據(jù)結構(Java語言版)模擬試卷2(含參考答案)_第1頁
數(shù)據(jù)結構(Java語言版)模擬試卷2(含參考答案)_第2頁
數(shù)據(jù)結構(Java語言版)模擬試卷2(含參考答案)_第3頁
數(shù)據(jù)結構(Java語言版)模擬試卷2(含參考答案)_第4頁
數(shù)據(jù)結構(Java語言版)模擬試卷2(含參考答案)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)結構試卷(二)一、選擇題(每題3分,共24分)1.下面關于線性表的敘述錯誤的是(D)。A.線性表采用順序存儲必須占用一片連續(xù)的存儲空間B.線性表采用鏈式存儲不必占用一片連續(xù)的存儲空間C.線性表采用鏈式存儲便于插入和刪除操作的實現(xiàn)D.線性表采用順序存儲便于插入和刪除操作的實現(xiàn)2.設哈夫曼樹中的葉子結點總數(shù)為m,若用二叉鏈表作為存儲結構,則該哈夫曼樹中總共有(B)個空指針域。A.2m-1B.2mC.2m+1D.4m3.設順序循環(huán)隊列Q[0:M-1]的頭指針和尾指針分別為F和R,頭指針F總是指向隊頭元素的前一位置,尾指針R總是指向隊尾元素的當前位置,則該循環(huán)隊列中的元素個數(shù)為(C)。A.R-FB.F-RC.(R-F+M)%MD.(F-R+M)%M4.設某棵二叉樹的中序遍歷序列為ABCD、前序遍歷序列為CABD,則后序遍歷該二叉樹得到的序列為(A)。A.BADCB.BCDAC.CDABD.CBDA5.設某完全無向圖中有n個頂點,則該完全無向圖中有(A)條邊。A.n(n-1)/2B.n(n-1)C.n2D.n2-16.設某棵二叉樹中有2000個結點,則該二叉樹的最小高度為(C)。A.9B.10C.11D.127.設某有向圖中有n個頂點,則該有向圖對應的鄰接表中有(B)個表頭結點。A.n-1B.nC.n+1D.2n-18.設有一組初始記錄關鍵字序列(5,2,6,3,8),以第一個記錄關鍵字5為基準進行一趟快速排序的結果為(C)。A.2,3,5,8,6B.3,2,5,8,6C.3,2,5,6,8D.2,3,6,5,8二、填空題(每空2分,共24分)1.為了能有效地應用Hash查找技術,必須解決的兩個問題是___如何構造哈希函數(shù)和如何解決沖突。2.下面程序段的功能實現(xiàn)數(shù)據(jù)x進棧,要求在下畫線處填上正確的語句。

1

classSqStack:

2

def__init__(self):

3

self.data=[None]*100

4

self.top=0

5

#......

6

7

#......

8

9

defpush(self,x):

10

ifself.top==100:

11

raise('overflow')

12

else:

13

__self.data[top]=x____

14

___top=top+1___3.中序遍歷二叉排序樹所得到的序列是____有序____序列(填有序或無序)。4.快速排序的最壞時間復雜度為___O(n2)_____,平均時間復雜度為___O(nlogn)_____。5.設某棵二叉樹中度數(shù)為0的結點數(shù)為N0,度數(shù)為1的結點數(shù)為N1,則該二叉樹中度數(shù)為2的結點數(shù)為____N0-1___;若采用二叉鏈表作為該二叉樹的存儲結構,則該二叉樹中共有____N1+2N0____個空指針域。6.設某無向圖中的頂點數(shù)和邊數(shù)分別為n和e,所有頂點的度數(shù)之和為d,則e=____d/2____。7.設一組初始記錄關鍵字序列為(55,63,44,38,75,80,31,56),則利用篩選法建立的初始堆為____大根堆:(80,75,55,56,63,44,31,38)小根堆:(31,38,44,56,75,80,55,63)____。8.已知一個有向圖的鄰接表存儲結構如圖A.3所示,從頂點1出發(fā),DFS遍歷的輸出序列是_____1,3,4,5,2___,BFS遍歷的輸出序列是____1,3,2,4,5____。圖A.3圖的鄰接表存儲結構三、應用題(每題6分,共36分)1.設一組初始記錄關鍵字序列為(45,80,48,40,22,78),則分別給出第4趟簡單選擇排序和第4趟直接插入排序后的結果。答:簡單選擇排序:22,40,45,48,80,78 直接插入排序:40,45,48,80,22,782.設指針變量p指向雙向鏈表中的結點A,指針變量q指向被插入結點B,要求給出在結點A的后面插入結點B的操作序列(設雙向鏈表中結點的兩個指針域分別為llink和rlink)。答:q->llink=p;q->rlink=p->rlink;p->rlink->llink=q;p->rlink=q;3.設一組有序的記錄關鍵字序列為(13,18,24,35,47,50,62,83,90),查找方法用二分查找,要求計算出查找關鍵字62時的比較次數(shù)并計算出查找成功時的平均查找長度。答:比較次數(shù)2,平均查找長度25/9圖A.4無向圖G4.設一棵樹T中邊的集合為{(A,B),(A,C),(A,D),(B,E),(C,F(xiàn)),(C,G)},要求用孩子兄弟表示法(二叉鏈表)表示出該樹的存儲結構并將該樹轉化成對應的二叉樹。答:5.設有如圖A.4所示的無向圖G,要求給出用普里姆算法構造最小生成樹所走過的邊的集合。答:{(1,3),(1,2),(3,5),(5,6),(6,4)}6.設有一組初始記錄關鍵字為(45,80,48,40,22,78),要求構造一棵二叉排序樹并給出構造過程。答:構造過程如下:插入過程:若二叉排序樹為空,則待插入結點*S作為根結點插入到空樹中;當非空時,將待插結點關鍵字S->key和樹根關鍵字t->key進行比較,若s->key=t->key,則無須插入,若s->key<t->key,則插入到根的左子樹中,若s->key>t->key,則插入到根的右子樹中。而子樹中的插入過程和在樹中的插入過程相同,如此進行下去,直到把結點*s作為一個新的樹葉插入到二叉排序樹中,或者直到發(fā)現(xiàn)樹已有相同關鍵字的結點為止。構造結果:四、算法設計題(每題8分,共16分)1.設有一組初始記錄關鍵字序列(K1,K2,…,Kn),要求設計一個算法能夠在O(n)的時間復雜度內(nèi)將線性表劃分成兩部分,其中左半部分的每個關鍵字均小于Ki,右半部分的每個關鍵字均大于等于Ki。

1

defquicksort(list,i,n):

2

left=i

3

right=n

4

temp=list[i]

5

whileleft<right:

6

whileleft<rightandlist[right]>temp:

7

right=right-1

8

ifleft<right:

9

list[left]=list[right]

10

left=left+1

11

whileleft<rightandlist[left]<temp:

12

left=left+1

13

ifleft<right:

14

list[right]=list[left]

15

right=right-1

16

list[left]=temp使用java改寫:voidquicksort(int[]list,inti,intn){intleft=i;intright=n;inttemp=list[i];while(left<right){while(left<right&&list[right]>temp){right--;}if(left<right){list[left]=list[right];left++;}while(left<right&&list[left]<temp){left++;}if(left<right){list[right]=list[left];right--;}}list[left]=temp;}2.設有兩個集合A和集合B,要求設計生成集合C=A∩B的算法,其中集合A、B和C用鏈式存儲結構表示。

1

classNode():

2

i=0

3

def_init_(self,data):

4

self.data=data

5

self.next=None

6

Node.i+=1

7

8

defandOperation(a,b,c):

9

p=a

10

c=None

11

whilep!=None:

12

q=b

13

whileq!=None:

14

ifp.data==q.data:

15

break

16

q=q.next

17

ifq!=None:

18

t=Node(p.data)

19

t.next=c

20

c=t

21

p=p.next使用java改寫:classNode{intdata;Nodenext;Node(intdt){data=dt;next=null;}}NodedefandOperation(Nodea,Nodeb){Nodep=a;Nodec=null;while(p!=null){Nodeq=b;while(q!=null){

溫馨提示

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

最新文檔

評論

0/150

提交評論