数据结构试卷及答案(三)
一、選擇題
1、設某數據結構的二元組形式表示為A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>
, <01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>},則數據結構A是(? )。
(A) 線性結構???????
(B) 樹型結構
(C) 物理結構?
(D) 圖型結構
2、下面程序的時間復雜為(? )
for(i=1,s=0; i<=n;i++)?
{
???? t=1;
???? for(j=1;j<=i;j++)
????????t=t*j;
???? s=s+t;
}
(A) O(n)?
(B) O(n2)???????
(C) O(n3)?????? ???????
(D) O(n4)
3、設指針變量p指向單鏈表中結點A,若刪除單鏈表中結點A,則需要修改指針的操作序列為(? )。
(A) q=p->next;p->data=q->data;p->next=q->next;free(q);
(B) q=p->next;q->data=p->data;p->next=q->next;free(q);
(C) q=p->next;p->next=q->next;free(q);
(D) q=p->next;p->data=q->data;free(q);
4、設有n個待排序的記錄關鍵字,則在堆排序中需要(? )個輔助記錄單元。
(A) 1??????
(B) n??????
(C) nlog2n??????
(D) n2
5、設一組初始關鍵字記錄為(20,15,14,18,21,36,40,10),則以20為基準記錄的一趟快速排序結束后的結果為(? )。?
(A) 10,15,14,18,20,36,40,21
(B) 10,15,14,18,20,40,36,21
(C) 10,15,14,20,18,40,36,21
(D) 15,10,14,18,20,36,40,21
6、設二叉排序樹中有n個結點,則在二叉排序樹的平均平均查找長度為(? )。?
(A) O(1)?????????
(B) O(log2n)????
(C)?n??????????
(D) O(n2)
7、設無向圖G中有n個頂點e條邊,則其對應的鄰接表中的表頭結點和表結點的個數分別為(? )。
(A) n,e
(B) e,n?
(C) 2n,e??????
(D) n,2e
8、設某強連通圖中有n個頂點,則該強連通圖中至少有(? )條邊。
(A) n(n-1)??????
(B) n+1???
(C) n???????
(D) n(n+1)
9、設有5000個待排序的記錄關鍵字,如果需要用最快的方法選出其中最小的10個記錄關鍵字,則用下列(? )方法可以達到此目的。
(A) 快速排序???????
(B) 堆排序????
(C) 歸并排序?
(D) 插入排序
10、下列四種排序中(? )的空間復雜度最大。?
(A) 插入排序????
(B) 冒泡排序????
(C) 堆排序??????
(D) 歸并排序
二、填空題
1、數據的物理結構主要包括_____________和______________兩種情況。
2、設一棵完全二叉樹中有500個結點,則該二叉樹的深度為__________;若用二叉鏈表作為該完全二叉樹的存儲結構,則共有 ___
個空指針域。
3、設輸入序列為1、2、3,則經過棧的作用后可以得到___________種不同的輸出序列。
參考答案是:54、設有向圖G用鄰接矩陣A[n][n]作為存儲結構,則該鄰接矩陣中第 i 行上所有元素之和等于頂點i的________,第i列上所有元素之和
等于頂點 i 的________。
5、設哈夫曼樹中共有n個結點,則該哈夫曼樹中有________個度數為1的結點。
參考答案是:06、設有向圖G中有n個頂點e條有向邊,所有的頂點入度數之和為d,則e和d的關系為________。
參考答案是:e=d7、__________遍歷二叉排序樹中的結點可以得到一個遞增的關鍵字序列(填先序、中序或后序)。
參考答案是:中序8、設查找表中有100個元素,如果用二分法查找方法查找數據元素X,則最多需要比較________次就可以斷定數據元素X是否在查
找表中。
分析:二分查找的過程可以用一棵二叉樹來描述,該二叉樹稱為二叉判定樹。在有序表上進行二分查找時的查找長度不超過二叉判定樹的高度1+log2n。
9、不論是順序存儲結構的棧還是鏈式存儲結構的棧,其入棧和出棧操作的時間復雜度均為________。
參考答案是:O(1)10、設有n個結點的完全二叉樹,如果按照從自上到下、從左到右從1開始順序編號,則第i個結點的雙親結點編號為___________
右孩子結點的編號為___________。
11、設一組初始記錄關鍵字為(72,73,71,23,94,16,5),則以記錄關鍵字72為基準的一趟快速排序結果為____________。
參考答案是:(5,16,71,23,72,94,73)12、設有向圖G中有向邊的集合E={<1,2>,<2,3>,<1,4>,<4,2>,<4,3>},則該圖的一種拓撲序列為______________。
參考答案是:(1,4,3,2)13、下列算法實現在順序散列表中查找值為x的關鍵字,請在下劃線處填上正確的語句。
struct record
{
??? int key;?
??? int others;
};
int hashsqsearch(struct record hashtable[ ],int k)
{
???? int i,j;?
???? j=i=k % p;
???? while (hashtable[j].key!=k&&hashtable[j].flag!=0)
???? {
???????? j=(____) %m;?
???????? if (i==j)?
??????????? return(-1);
???? }
??? if (_____________ )?
?????? return(j);?
??? else?
?????? return(-1);
}
參考答案是:j+1,hashtable[j].key==k14、下列算法實現在二叉排序樹上查找關鍵值k,請在下劃線處填上正確的語句。
typedef struct node
{
???? int key;?
???? struct node *lchild;?
???? struct node *rchild;
}bitree;
bitree? *bstsearch(bitree *t, int ?k)
{ ????
???? if (t==0 )?
???????? return(0);
???? else??
???????? while (t!=0)
???????????? if (t->key==k)_____________;?
???????????? else if (t->key>k)
????????????????? t=t->lchild;?
???????????? else_____________;
}
參考答案是:return(t),t=t->rchild三、計算題
1、已知二叉樹的前序遍歷序列是AEFBGCDHIKJ,中序遍歷序列是EFAGBCHKIJD,畫出此二叉樹,并畫出它的后序線索二叉樹。
2、已知待散列的線性表為(36,15,40,63,22),散列用的一維地址空間為[0..6],假定選用的散列函數是H(K)= K mod 7,
若發生沖突采用線性探查法處理,試:
(1)計算出每一個元素的散列地址并在下圖中填寫出散列表:?
?
(2)求出在查找每一個元素概率相等情況下的平均查找長度。?
H(36)=36 mod 7=1;?
H(15)=15 mod 7=1;….沖突?
H1(15)=(1+1) mod 7=2;?
H(40)=40 mod 7=5;?
H(63)=63 mod 7=0;?
H(22)=22 mod 7=1; ….沖突?
H1(22)=(1+1) mod 7=2; ….沖突?
H2(22)=(2+1) mod 7=3;?
(2)
3、已知序列(10,18,4,3,6,12,1,9,18,8)請用快速排序寫出每一趟排序的結果。
參考答案是:(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,18?
1,3, 4,6,8,9,10,12,18,18
四、算法設計題
1、設計在單鏈表中刪除值相同的多余結點的算法。
2、設計一個求結點x在二叉樹中的雙親結點算法。
參考答案是:typedef?struct?node? {datatype?data;?struct?node?*lchild,*rchild; }bitree; bitree?*q[20];? int?r=0,f=0,flag=0; void?preorder(bitree?*bt,?char?x) {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);?} } void?parent(bitree?*bt,char?x) {int?i;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("not?found?x\n");else?if?(i<=r)?printf("%c",bt->data);?else?printf("not?parent"); }來源:我是碼農,轉載請保留出處和鏈接!
本文鏈接:http://www.54manong.com/?id=47
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })(); '); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();總結
以上是生活随笔為你收集整理的数据结构试卷及答案(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qq for android 1.0,Q
- 下一篇: Wpe封包服务器不回传怎么办