久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

數據結構試卷及參考答案_5

時間:2019-05-15 10:48:05下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《數據結構試卷及參考答案_5》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《數據結構試卷及參考答案_5》。

第一篇:數據結構試卷及參考答案_5

數據結構試卷

(五)一、選擇題(20分)

1.數據的最小單位是()。

(A)數據項(B)數據類型(C)數據元素(D)數據變量

2.設一組初始記錄關鍵字序列為(50,40,95,20,15,70,60,45),則以增量d=4的一趟希爾排序結束后前4條記錄關鍵字為()。

(A)40,50,20,95(B)15,40,60,20(C)15,20,40,45(D)45,40,15,20 3.設一組初始記錄關鍵字序列為(25,50,15,35,80,85,20,40,36,70),其中含有5個長度為2的有序子表,則用歸并排序的方法對該記錄關鍵字序列進行一趟歸并后的結果為()。

(A)15,25,35,50,20,40,80,85,36,70(B)15,25,35,50,80,20,85,40,70,36(C)15,25,35,50,80,85,20,36,40,70(D)15,25,35,50,80,20,36,40,70,85 4.函數substr(“DATASTRUCTURE”,5,9)的返回值為()。

(A)“STRUCTURE”

(B)“DATA”

(C)“ASTRUCTUR”

(D)“DATASTRUCTURE” 5.設一個有序的單鏈表中有n個結點,現要求插入一個新結點后使得單鏈表仍然保持有序,則該操作的時間復雜度為()。

(A)O(log2n)(B)O(1)(C)O(n2)(D)O(n)6.設一棵m叉樹中度數為0的結點數為N0,度數為1的結點數為Nl,……,度數為m的結點數為Nm,則N0=()。

(A)Nl+N2+……+Nm(B)l+N2+2N3+3N4+……+(m-1)Nm(C)N2+2N3+3N4+……+(m-1)Nm(D)2Nl+3N2+……+(m+1)Nm 7.設有序表中有1000個元素,則用二分查找查找元素X最多需要比較()次。

(A)25(B)10(C)7(D)1 8.設連通圖G中的邊集E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},則從頂點a出發可以得到一種深度優先遍歷的頂點序列為()。

(A)abedfc(B)acfebd(C)aebdfc(D)aedfcb 9.設輸入序列是1、2、3、……、n,經過棧的作用后輸出序列的第一個元素是n,則輸出序列中第i個輸出元素是()。

(A)n-i(B)n-1-i(C)n+1-i(D)不能確定 設一組初始記錄關鍵字序列為(45,80,55,40,42,85),則以第一個記錄關鍵字45為基準而得到一趟快速排序的結果是()。

(A)40,42,45,55,80,83(B)42,40,45,80,85,88(C)42,40,45,55,80,85(D)42,40,45,85,55,80

二、填空題(共20分)1.設有一個順序共享棧S[0:n-1],其中第一個棧項指針top1的初值為-1,第二個棧頂指針top2的初值為n,則判斷共享棧滿的條件是____________________。

2.在圖的鄰接表中用順序存儲結構存儲表頭結點的優點是____________________。3.設有一個n階的下三角矩陣A,如果按照行的順序將下三角矩陣中的元素(包括對角線上元素)存放在n(n+1)個連續的存儲單元中,則A[i][j]與A[0][0]之間有_______個數據元素。

4.棧的插入和刪除只能在棧的棧頂進行,后進棧的元素必定先出棧,所以又把棧稱為__________表;隊列的插入和刪除運算分別在隊列的兩端進行,先進隊列的元素必定先出隊列,所以又把隊列稱為_________表。

5.設一棵完全二叉樹的順序存儲結構中存儲數據元素為ABCDEF,則該二叉樹的前序遍歷序列為___________,中序遍歷序列為___________,后序遍歷序列為___________。6.設一棵完全二叉樹有128個結點,則該完全二叉樹的深度為________,有__________個葉子結點。

7.設有向圖G的存儲結構用鄰接矩陣A來表示,則A中第i行中所有非零元素個數之和等于頂點i的________,第i列中所有非零元素個數之和等于頂點i的__________。

8.設一組初始記錄關鍵字序列(k1,k2,……,kn)是堆,則對i=1,2,…,n/2而言滿足的條件為_______________________________。

9.下面程序段的功能是實現冒泡排序算法,請在下劃線處填上正確的語句。

void bubble(int r[n]){ for(i=1;i<=n-1;i++){ for(exchange=0,j=0;j<_____________;j++)

if(r[j]>r[j+1]){temp=r[j+1];______________;r[j]=temp;exchange=1;} if(exchange==0)return; } } 10.下面程序段的功能是實現二分查找算法,請在下劃線處填上正確的語句。struct record{int key;int others;};int bisearch(struct record r[ ], int k){

int low=0,mid,high=n-1;

while(low<=high){ ________________________________;

if(r[mid].key==k)return(mid+1);else if(____________)high=mid-1;else low=mid+1;

}

return(0);}

三、應用題(32分)

1.設某棵二叉樹的中序遍歷序列為DBEAC,前序遍歷序列為ABDEC,要求給出該二叉樹的的后序遍歷序列。2.設無向圖G(如右圖所示),給出該圖的最小生成樹上邊的集合并計算最小生成樹各邊上的權值之和。

3.設一組初始記錄關鍵字序列為(15,17,18,22,35,51,60),要求計算出成功查找時的平均查找長度。4.設散列表的長度為8,散列函數H(k)=k mod 7,初始記錄關鍵字序列為(25,31,8,27,13,68),要求分別計算出用線性探測法和鏈地址法作為解決沖突方法的平均查找長度。

四、算法設計題(28分)1. 設計判斷兩個二叉樹是否相同的算法。2. 設計兩個有序單鏈表的合并排序算法。

數據結構試卷

(五)參考答案

一、選擇題 1.A 2.B 6.B 7.B

二、填空題

1.top1+1=top2 2.可以隨機訪問到任一個頂點的簡單鏈表 3.4.5.6.7.i(i+1)/2+j-1 FILO,FIFO ABDECF,DBEAFC,DEBFCA 8,64 出度,入度

3.A 8.B

4.A 9.C

5.D 10.C 8.ki<=k2i&& ki<=k2i+1 9.n-i,r[j+1]=r[j] 10.mid=(low+high)/2,r[mid].key>k

三、應用題

1.DEBCA 2.E={(1,5),(5,2),(5,3),(3,4)},W=10 3.ASL=(1*1+2*2+3*4)/7=17/7 4.ASL1=7/6,ASL2=4/3

四、算法設計題

1.設計判斷兩個二叉樹是否相同的算法。

typedef struct node {datatype data;struct node *lchild,*rchild;} bitree;int judgebitree(bitree *bt1,bitree *bt2){

if(bt1==0 && bt2==0)return(1);

else if(bt1==0 || bt2==0 ||bt1->data!=bt2->data)return(0);

else return(judgebitree(bt1->lchild,bt2->lchild)*judgebitree(bt1->rchild,bt2->rchild));} 2.設計兩個有序單鏈表的合并排序算法。

void mergelklist(lklist *ha,lklist *hb,lklist *&hc){

lklist *s=hc=0;

while(ha!=0 && hb!=0)

if(ha->datadata){if(s==0)hc=s=ha;else {s->next=ha;s=ha;};ha=ha->next;}

else {if(s==0)hc=s=hb;else {s->next=hb;s=hb;};hb=hb->next;}

if(ha==0)s->next=hb;else s->next=ha;}

第二篇:數據結構期中試卷及答案

一、選擇題(每小題2分,共30分)1.數據結構是(D)。

A.一種數據類型 B.數據的存儲結構 C.一組性質相同的數據元素的集合

D.相互之間存在一種或多種特定關系的數據元素的集合

2.以下與數據的存儲結構無關的術語是(D)。

A.鏈隊列 B.鏈表 C.順序表 D.棧

3.以下數據結構中,(A)是非線性數據結構

A.樹 B.字符串 C.隊 D.棧

4.一個順序存儲線性表的第一個元素的存儲地址是90,每個元素的長度是2,則第6個元素的存儲地址是(B)。

A.98 B.100 C.102 D.106

5.在線性表的下列運算中,不改變數據元素之間結構關系的運算是(D)。A.插入 B.刪除 C.排序 D.查找

6.線性表采用鏈式存儲時,其地址(D)。

A.必須是連續的 B.一定是不連續的 C.部分地址必須連續 D.連續與否均可以

7.線性表是(A)。

A.一個有限序列,可以為空 B.一個有限序列,不可以為空 C.一個無限序列,可以為空 D.一個無限序列,不可以為空

8.若進棧序列為1,2,3,4,5,6,且進棧和出棧可以穿插進行,則可能出現的出棧序列為(B)。

A.3,2,6,1,4,5 B.3,4,2,1,6,5 C.1,2,5,3,4,6 D.5,6,4,2,3,1

9.若一個棧的輸人序列是1,2,3,…,n,輸出序列的第一個元素是n,則第k個輸出元素是(C)。

A.k B.n-k-1 C.n-k+1 D.不確定

10.對于隊列操作數據的原則是(A)。

A.先進先出 B.后進先出 C.先進后出 D.不分順序 11.棧和隊列的共同點是(C)。

A.都是先進先出 B.都是先進后出 C.只允許在端點處插入和刪除元素 D.沒有共同點

12.在一個鏈隊列中,假定front和rear分別為頭指針和尾指針,刪除一個結點的操作是(A)。

A.front=front->next B.rear=rear->next C.rear->next=front D.front->next=rear

13.空串與空格串(B)。

A.相同 B.不相同 C.可能相同 D.無法確定

14.串與普通的線性表相比較,它的特殊性體現在(C)。A.順序的存儲結構 B.鏈接的存儲結構 C.數據元素是一個字符 D.數據元素可以任意

15.串的長度是指(B)。

A.串中所含不同字母的個數 B.串中所含字符的個數

C.串中所含不同字符的個數 D.串中所含非空格字符的個數

二、填空題(每空2分,共20分)

1. 線性表、棧和隊列,串都是__線性_____結構。2. 數據的基本單位是__數據元素_______________。

3. 當線性表的元素總數基本穩定,且很少進行插入和刪除操作,但要求以最快的速度存取線性表中的元素時,應采用_順序______存儲結構。4. 已知具有n個元素的一維數組采用順序存儲結構,每個元素占k個存儲單元,第一個元素的地址為Loc(a1),那么,第i個元素的存儲地址Loc(ai)= Loc(a1)+(i-1)*k。5. 棧(stack)是限定在表尾進行插人或刪除操作的線性表。在棧中,允許插人和刪除操作的一端稱為__棧頂________,而另一端稱為_棧底________。6. 一個循環隊列Q中,頭指針和尾指針分別為Q.front和Q.rear,且最大隊列長度為MaxQSize,則判斷隊空的條件為 Q.rear==Q.front,判斷隊滿的條件為(Q.rear+1)%MaxQSize==Q.front。隊列的長度為(.rear-Q.front+MaxQSize)%MaxQSize

7. 兩個串相等的充分必要條件是 兩個串的長度相等,且各個對應位置的字符都相等。

三、程序填空題(每空3分,共30分)

1.在帶頭結點的單鏈表L中第i個數據元素之前插入數據元素e的C語言描述算法如下,其中L為鏈表頭結點指針。請填充算法中標出的空白處,完成其功能。

typedef struct node {int data;

struct node *next;

}linknode,*link;

int ListInsert_L(link &L, int i, int e){ Linknode *p;int j; p = L; j = 0;

while(p && j < i-1){ p=p->next ; ++j; } // 尋找第i-1個結點 if(!p || j > i-1)return 0;

s=(link)malloc(sizeof(linknode));// 生成新結點s s->data = e;

s->next=p->next ; p->next = s; // 插入L中 return 1; }

2.對順序棧的C語言描述算法如下,其中top為棧頂指針,請填充算法中標出的空白處,插入元素e為新的棧頂元素。

#define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 typedef struct{ char *base;char *top;int stacksize;}SqStack;

int Push(SqStack &S, char e){ //

if((s.top-s.base)>=s.stacksize)//棧滿,追加存儲空間 { S.base=(SElemType *)realloc(S.base,S.stacksize+STACKINCREMENT)*sizeof(SElemType)); if(!S.base)return 0;

S.top = s.base+s.stacksize ; //修改棧頂指針 S.stacksize += STACKINCREMENT; } *s.top++=e ;//插入元素 return 1; }

3.對鏈隊列的C語言描述算法如下,請填充算法中標出的空白處,刪除隊列Q 的隊頭元素并用e返回其值。typedef struct QNode{ QElemType data; struct QNode *next; }QNode, *QueuePtr;

typedef struct { QueuePtr front; QueuePtr rear; }LinkQueue;

int DeQueue(LinkQueue &Q, QElemType &e){ Linknode *p;

if(Q.front==Q.rear)retrun 0;//隊列空,返回 p = Q.front-> next; e = p->data;

Q.front-> next=p->next;//修改指針

if(Q.rear==p)Q.rear= Q.front ; //隊列只有一個元素的情況 free(p);//釋放結點空間 return 1; }

三、算法設計與分析題(每題10分,共20分)

1、簡述下列算法實現的功能:(每題5分,共10分)(1)typedef struct LNode{

Char data;

struct LNode *next;}LNode,*LinkList;LinkList Demo(LinkList &L){ // L 是無頭結點單鏈表 LNode *Q,*P;if(L&&L->next){

Q=L;L=L->next;P=L;while(P->next)P=P->next;

P->next=Q;Q->next=NULL;

} return L;}// Demo 答:將單鏈表的第一個結點刪除,放到鏈尾。

———————————————————————————————————————————————————

(2)#define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 typedef struct{ int *base;int *top;int stacksize;

} Stack;void Demo1(Stack &S, int m){ Stack T;int i;

InitStack(T);//初始化棧

while(!StackEmpty(S))//判斷棧是否為空

if((i=Pop(S))!=m)Push(T,i);//入棧操作

while(!StackEmpty(T))

{

i=Pop(T);//出棧操作

Push(S,i);

}

} 答:刪除棧S中所有值為m的數據元素

2.有一個帶頭結點的單鏈表,頭指針為head,編寫一個算法計算所有數據域為X的結點的個數(不包括頭結點)。typedef struct node {int data;struct node *next;}linknode,*link;int sample(link head, int X){ int count=0;link p=head->next;while(p){if(p->data==X)count++;p=p->next;} return count;}

第三篇:數據結構試卷(一)及答案

數據結構試卷

(一)一、選擇題(20分)

1.組成數據的基本單位是()。

(A)數據項(B)數據類型(C)數據元素(D)數據變量

2.設數據結構A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},則數據結構A是()。

(A)線性結構(B)樹型結構(C)圖型結構(D)集合 3.數組的邏輯結構不同于下列()的邏輯結構。

(A)線性表(B)棧(C)隊列(D)樹 4.二叉樹中第i(i≥1)層上的結點數最多有()個。

ii-1(A)2i(B)2(C)2(D)2i-1 5.設指針變量p指向單鏈表結點A,則刪除結點A的后繼結點B需要的操作為()。

(A)p->next=p->next->next(B)p=p->next

(C)p=p->next->next(D)p->next=p 6.設棧S和隊列Q的初始狀態為空,元素E1、E2、E3、E4、E5和E6依次通過棧S,一個元素出棧后即進入隊列Q,若6個元素出列的順序為E2、E4、E3、E6、E5和E1,則棧S的容量至少應該是()。

(A)6(B)4(C)3(D)2 7.將10階對稱矩陣壓縮存儲到一維數組A中,則數組A的長度最少為()。

(A)100(B)40(C)55(D)80 8.設結點A有3個兄弟結點且結點B為結點A的雙親結點,則結點B的度數數為()。

(A)3(B)4(C)5(D)1 9.根據二叉樹的定義可知二叉樹共有()種不同的形態。

(A)4(B)5(C)6(D)7 10.設有以下四種排序方法,則()的空間復雜度最大。

(A)冒泡排序(B)快速排序(C)堆排序(D)希爾排序

二、填空題(30分)1.設順序循環隊列Q[0:m-1]的隊頭指針和隊尾指針分別為F和R,其中隊頭指針F指向當前隊頭元素的前一個位置,隊尾指針R指向當前隊尾元素所在的位置,則出隊列的語句為F =____________。

2.設線性表中有n個數據元素,則在順序存儲結構上實現順序查找的平均時間復雜度為___________,在鏈式存儲結構上實現順序查找的平均時間復雜度為___________。3.設一棵二叉樹中有n個結點,則當用二叉鏈表作為其存儲結構時,該二叉鏈表中共有________個指針域,__________個空指針域。

4.設指針變量p指向單鏈表中結點A,指針變量s指向被插入的結點B,則在結點A的后面插入結點B的操作序列為______________________________________。

5.設無向圖G中有n個頂點和e條邊,則其對應的鄰接表中有_________個表頭結點和_________個表結點。

6.設無向圖G中有n個頂點e條邊,所有頂點的度數之和為m,則e和m有______關系。7.設一棵二叉樹的前序遍歷序列和中序遍歷序列均為ABC,則該二叉樹的后序遍歷序列為__________。

8.設一棵完全二叉樹中有21個結點,如果按照從上到下、從左到右的順序從1開始順序編號,則編號為8的雙親結點的編號是___________,編號為8的左孩子結點的編號是_____________。

9.下列程序段的功能實現子串t在主串s中位置的算法,要求在下劃線處填上正確語句。

int index(char s[ ], char t[ ]){ i=j=0;while(i

三、應用題(30分)

1.設完全二叉樹的順序存儲結構中存儲數據ABCDE,要求給出該二叉樹的鏈式存儲結構并給出該二叉樹的前序、中序和后序遍歷序列。

2.設給定一個權值集合W=(3,5,7,9,11),要求根據給定的權值集合構造一棵哈夫曼樹并計算哈夫曼樹的帶權路徑長度WPL。

3.設一組初始記錄關鍵字序列為(19,21,16,5,18,23),要求給出以19為基準的一趟快速排序結果以及第2趟直接選擇排序后的結果。

4.設一組初始記錄關鍵字集合為(25,10,8,27,32,68),散列表的長度為8,散列函數H(k)=k mod 7,要求分別用線性探測和鏈地址法作為解決沖突的方法設計哈希表。5.設無向圖G(所右圖所示),要求給出該圖的深度優先和廣度優先遍歷的序列并給出該圖的最小生成樹。

四、算法設計題(20分)1.設計判斷單鏈表中結點是否關于中心對稱算法。2.設計在鏈式存儲結構上建立一棵二叉樹的算法。3.設計判斷一棵二叉樹是否是二叉排序樹的算法。

數據結構試卷

(一)參考答案

一、選擇題

1.C 2.C 3.D 4.C 5.A 6.C 7.C 8.B 9.B 10.B

二、填空題 1.(F+1)% m 2.O(n),O(n)3.2n,n+1 4.s->next=p->next;s->next=s 5.n, 2e 6.m=2e 7.CBA 8.4,16 9.i-j+1,0 10.n-1

三、應用題

1.鏈式存儲結構略,前序ABDEC,中序DBEAC,后序DEBCA。2.哈夫曼樹略,WPL=78 3.(18,5,16,19,21,23),(5,16,21,19,18,23)

h0h1??8h2012345674.線性探測: 鏈地址法:h3??10

?8?1025322768h4??25??32h5??68h6??275.深度:125364,廣度:123456,最小生成樹T的邊集為E={(1,4),(1,3),(3,5),(5,6),(5,6)}

四、算法設計題

1.設計判斷單鏈表中結點是否關于中心對稱算法。

typedef struct {int s[100];int top;} sqstack;int lklistsymmetry(lklist *head){

sqstack stack;stack.top=-1;lklist *p;

for(p=head;p!=0;p=p->next){stack.top++;stack.s[stack.top]=p->data;}

for(p=head;p!=0;p=p->next)if(p->data==stack.s[stack.top])stack.top=stack.top-1;else return(0);

return(1);} 2.設計在鏈式存儲結構上建立一棵二叉樹的算法。

typedef char datatype;typedef struct node {datatype data;struct node *lchild,*rchild;} bitree;void createbitree(bitree *&bt){

char ch;scanf(“%c”,&ch);

if(ch=='#'){bt=0;return;} bt=(bitree*)malloc(sizeof(bitree));bt->data=ch;createbitree(bt->lchild);createbitree(bt->rchild);} 3.設計判斷一棵二叉樹是否是二叉排序樹的算法。

int minnum=-32768,flag=1;typedef struct node{int key;struct node *lchild,*rchild;}bitree;void inorder(bitree *bt){

if(bt!=0)

{inorder(bt->lchild);if(minnum>bt->key)flag=0;minnum=bt->key;inorder(bt->rchild);} }

第四篇:廣東海洋大學數據結構試卷及答案

廣東海洋大學

2013 ——

2014 學年第 1 學期

《數據結構與算法》課程試題

一、選擇題(6小題,每題3分)

1.若某線性表中最常用的操作是取第i個元素和找第i個元素的前驅,則采用(A)存儲方法最節省時間 A 順序表

B單鏈表

C 雙鏈表

D單循環鏈表 2.一個棧的入棧序列是1,2,3,4,5,則不可能的出棧序列是(C)A 5,4,3,2,1

B 4,5,3,2,1

C 4,3,5,1,2

D 1,2,3,4,5 3.深度為k的完全二叉樹至多有(C)個結點 A 2k?2?

1B 2k?1

C

D 2k?1?1

k4.G是一個非連通無向圖,共28條邊,則該圖至少有(D)個頂點2A 6

B 7

C 8

D 9

?1

5.在平衡二叉樹中插入一個結點后造成不平衡,設最低的不平衡結點為A,并已知A的左孩子平衡因子為0,右孩子平衡因子為1,則應該做(C)型調整以使其平衡 A LL

B LR

C RL

D RR 6.下述排序方法中,時間性能和待排序記錄的初始狀態無關的是(C)A 插入排序和快速排序

B 歸并排序和快速排序 C 選擇排序和歸并排序

D 插入排序和歸并排序

二、填空題

1.數組Q[n]用來表示一個循環隊列,front為隊頭元素的前一個位置,rear為隊尾元素位置,計算隊列中元素個數的公式為______(rear-front+n)%n______________。

2.已知一棵度為3的樹有2個度為1的結點,3個度為2的結點,4個度為3的結點。則該樹中有__12_________個葉子結點。

3.已知無向圖的頂點數為n,邊數為e,其鄰接表表示的空間復雜度為____________O(n+e)____。4.假定一個數列{25,43,62,31,48,56},采用散列函數為H(k)=k mod 7,則元素48的同義詞是____62_______。5.利用簡單選擇排序對n個記錄進行排序,最壞情況下,記錄交換次數為_____n-1_______。

三、(15分)已知一棵二叉樹的中序遍歷序列為DBKEHJAFCIG,后序遍歷序列為DKJHEBFIGCA,試畫出該二叉樹并給出其前序遍歷序列

四、(15分)設用于通信的電文由字符集{a,b,c,d,e,f,g,h}中的字母構成,它們在電文中出現的頻度分別為{0.02,0.30,0.08,0.14,0.17,0.11,0.12, 0.06},回答下面問題:(1)為這八個字符設計哈夫曼編碼(2)對這八個字符進行等長編碼需要幾位二進制數,哈夫曼編碼比等長編碼電文總長壓縮多少?

五、(20分)已知一個長度為11的線性表List=(12, 24, 36, 90, 52, 30, 41, 8, 10, 38, 61),試回答下面問題(1)將線性表元素依次插入一個空的平衡二叉樹,畫出所得平衡二叉樹,如果假設每個元素查找概率相同,則平均查找長度為多少?

(2)如果對線性表元素排序后進行折半查找,畫出折半查找判定樹,假設每個元素查找概率相同,計算平均查找長度。

六、(12分)已知數據序列為(11,4,8,19,6,31,23),寫出快速排序及堆排序每一趟的結果 解:

七、(11分)設單鏈表以非遞減有序排列,設計算法實現在單鏈表中刪除值相同的多余結點。

第五篇:數據結構試卷(八)及答案

數據結構試卷

(八)一、選擇題(30分)1.字符串的長度是指()。

(A)串中不同字符的個數(B)串中不同字母的個數

(C)串中所含字符的個數(D)串中不同數字的個數 2.建立一個長度為n的有序單鏈表的時間復雜度為()(A)O(n)(B)O(1)(C)O(n)(D)O(log2n)3.兩個字符串相等的充要條件是()。

(A)兩個字符串的長度相等(B)兩個字符串中對應位置上的字符相等

(C)同時具備(A)和(B)兩個條件(D)以上答案都不對

4.設某散列表的長度為100,散列函數H(k)=k % P,則P通常情況下最好選擇()。

(A)99(B)97(C)91(D)93 5.在二叉排序樹中插入一個關鍵字值的平均時間復雜度為()。(A)O(n)(B)O(1og2n)(C)O(nlog2n)(D)O(n)6.設一個順序有序表A[1:14]中有14個元素,則采用二分法查找元素A[4]的過程中比較元素的順序為()。

(A)A[1],A[2],A[3],A[4](B)A[1],A[14],A[7],A[4](C)A[7],A[3],A[5],A[4](D)A[7],A[5],A[3],A[4] 7.設一棵完全二叉樹中有65個結點,則該完全二叉樹的深度為()。

(A)8(B)7(C)6(D)5 8.設一棵三叉樹中有2個度數為1的結點,2個度數為2的結點,2個度數為3的結點,則該三叉鏈權中有()個度數為0的結點。

(A)5(B)6(C)7(D)8 9.設無向圖G中的邊的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},則從頂點a出發進行深度優先遍歷可以得到的一種頂點序列為()。

(A)aedfcb(B)acfebd(C)aebcfd(D)aedfbc 10.隊列是一種()的線性表。

(A)先進先出(B)先進后出(C)只能插入(D)只能刪除

二、判斷題(20分)1.如果兩個關鍵字的值不等但哈希函數值相等,則稱這兩個關鍵字為同義詞。()2.設初始記錄關鍵字基本有序,則快速排序算法的時間復雜度為O(nlog2n)。()3.分塊查找的基本思想是首先在索引表中進行查找,以便確定給定的關鍵字可能存在的塊號,然后再在相應的塊內進行順序查找。()4.二維數組和多維數組均不是特殊的線性結構。()

5.向二叉排序樹中插入一個結點需要比較的次數可能大于該二叉樹的高度。()6.如果某個有向圖的鄰接表中第i條單鏈表為空,則第i個頂點的出度為零。()7.非空的雙向循環鏈表中任何結點的前驅指針均不為空。()8.不論線性表采用順序存儲結構還是鏈式存儲結構,刪除值為X的結點的時間復雜度均為O(n)。()

9.圖的深度優先遍歷算法中需要設置一個標志數組,以便區分圖中的每個頂點是否被訪問過。()10.稀疏矩陣的壓縮存儲可以用一個三元組表來表示稀疏矩陣中的非0元素。()

三、填空題(30分)1. 設一組初始記錄關鍵字序列為(49,38,65,97,76,13,27,50),則以d=4為增量的一趟希爾排序結束后的結果為_____________________________。2. 下面程序段的功能是實現在二叉排序樹中插入一個新結點,請在下劃線處填上正確的內容。

typedef struct node{int data;struct node *lchild;struct node *rchild;}bitree;void bstinsert(bitree *&t,int k){ if(t==0){____________________________;t->data=k;t->lchild=t->rchild=0;} else if(t->data>k)bstinsert(t->lchild,k);else__________________________;} 3. 設指針變量p指向單鏈表中結點A,指針變量s指向被插入的結點X,則在結點A的后面插入結點X需要執行的語句序列:s->next=p->next;_________________。4. 設指針變量head指向雙向鏈表中的頭結點,指針變量p指向雙向鏈表中的第一個結點,則指針變量p和指針變量head之間的關系是p=_________和head=__________(設結點中的兩個指針域分別為llink和rlink)。

5. 設某棵二叉樹的中序遍歷序列為ABCD,后序遍歷序列為BADC,則其前序遍歷序列為__________。

6. 完全二叉樹中第5層上最少有__________個結點,最多有_________個結點。

7. 設有向圖中不存在有向邊,則其對應的鄰接矩陣A中的數組元素A[i][j]的值等于____________。

8. 設一組初始記錄關鍵字序列為(49,38,65,97,76,13,27,50),則第4趟直接選擇排序結束后的結果為_____________________________。

9. 設連通圖G中有n個頂點e條邊,則對應的最小生成樹上有___________條邊。10. 設有一組初始記錄關鍵字序列為(50,16,23,68,94,70,73),則將它們調整成初始堆只需把16與___________相互交換即可。

四、算法設計題(20分)1.設計一個在鏈式存儲結構上統計二叉樹中結點個數的算法。2.設計一個算法將無向圖的鄰接矩陣轉為對應鄰接表的算法。

數據結構試卷

(八)參考答案

一、選擇題 1.C 2.C 3.C 4.B 5.B 6.C 7.B 8.C 9.A 10.A

二、判斷題

1.對 2.錯 3.對 4.錯 5.錯 6.對 7.對 8.對 9.對 10.對

三、填空題

1.(49,13,27,50,76,38,65,97)2.t=(bitree *)malloc(sizeof(bitree)),bstinsert(t->rchild,k)3.p->next=s 4.head->rlink,p->llink 5.CABD 6.1,16 7.0 8.(13,27,38,50,76,49,65,97)9.n-1 10.50

四、算法設計題

1.設計一個在鏈式存儲結構上統計二叉樹中結點個數的算法。

void countnode(bitree *bt,int &count){

if(bt!=0)

{count++;countnode(bt->lchild,count);countnode(bt->rchild,count);} } 2.設計一個算法將無向圖的鄰接矩陣轉為對應鄰接表的算法。

typedef struct {int vertex[m];int edge[m][m];}gadjmatrix;typedef struct node1{int info;int adjvertex;struct node1 *nextarc;}glinklistnode;typedef struct node2{int vertexinfo;glinklistnode *firstarc;}glinkheadnode;void adjmatrixtoadjlist(gadjmatrix g1[ ],glinkheadnode g2[ ]){ int i,j;glinklistnode *p;for(i=0;i<=n-1;i++)g2[i].firstarc=0;for(i=0;i<=n-1;i++)for(j=0;j<=n-1;j++)if(g1.edge[i][j]==1){ p=(glinklistnode *)malloc(sizeof(glinklistnode));p->adjvertex=j;p->nextarc=g[i].firstarc;g[i].firstarc=p;p=(glinklistnode *)malloc(sizeof(glinklistnode));p->adjvertex=i;p->nextarc=g[j].firstarc;g[j].firstarc=p;} }

下載數據結構試卷及參考答案_5word格式文檔
下載數據結構試卷及參考答案_5.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    數據結構試題及答案

    1 數據結構試卷(二) 一、選擇題(24分) 1.下面關于線性表的敘述錯誤的是( )。 (A) 線性表采用順序存儲必須占用一片連續的存儲空間(B) 線性表采用鏈式存儲不必占用一片連續的存......

    數據結構試卷及參考答案_10

    數據結構試卷(十) 一、選擇題(24分) 1.下列程序段的時間復雜度為。 i=0,s=0; while(snext=p->next;p->next=-s; (B) q->next=s; s->next=p; (C) p->next=s->next;s->next=p; (D) p->nex......

    數據結構試卷及參考答案_2

    數據結構試卷(二) 一、選擇題(24分) 1.下面關于線性表的敘述錯誤的是( )。 (A) 線性表采用順序存儲必須占用一片連續的存儲空間(B) 線性表采用鏈式存儲不必占用一片連續的存儲空......

    數據結構試卷及參考答案_6

    數據結構試卷(六) 一、選擇題(30分) 1. 設一組權值集合W={2,3,4,5,6},則由該權值集合構造的哈夫曼樹中帶權路徑長度之和為()。(A) 20 (B) 30 (C) 40 (D) 45 2.執行一趟快速排序能夠得到......

    數據結構期中考試試卷答案(最終定稿)

    2014-2015學年度第一學期《數據結構》 期中考試試卷 一、 選擇題(每題2分,共20分) 1. 計算機內部數據處理的基本單位是( B )。 A.數據 B.數據元素C.數據項D.數據庫 2. 設語句x++的......

    數據結構復習題及答案5篇

    、數據結構復習題及答案 中南大學現代遠程教育課程考試(專科)復習題及參考答案 數據結構 一、判斷題: 1. 數組是一種復雜的數據結構,數組元素之間的關系既不是線性的也不是樹形......

    數據結構考試題目及答案

    數據結構試題6 一、單項選擇題(每小題3分,共30分) 1.設棧的輸入序列是1、2、3、4,則______不可能是其出棧序列。( ) [A] 1234 [B] 2134 [C] 1432 [D] 4312 2.在一個具有n個結......

    2015年數據結構期末考試題及答案(樣例5)

    2012年數據結構期末考試題及答案一、選擇題 1.在數據結構中,從邏輯上可以把數據結構分為C 。 A.動態結構和靜態結構B.緊湊結構和非緊湊結構 C.線性結構和非線性結構 D.內部結構和......

主站蜘蛛池模板: 亚洲国产精品久久久久秋霞小说| 亚洲成av人最新无码不卡短片| 无码人妻啪啪一区二区| 色噜噜狠狠色综合成人网| 久久午夜夜伦鲁鲁片免费无码影院| 免费拍拍拍网站| 日韩网红少妇无码视频香港| 亚洲午夜成人精品无码| 欧美人与动牲交大全免费| 国模无码人体一区二区| 久久婷婷五月综合97色直播| 国产精品白丝喷浆| 无码一区二区三区中文字幕| 黑人大战日本人妻嗷嗷叫不卡视频| 乱人伦人妻精品一区二区| 国产xxx69麻豆国语对白| 欧美第一黄网免费网站| 天堂国产一区二区三区四区不卡| 中文无码日韩欧av影视| 日本中文字幕乱码aa高清电影| 亚洲欧美日韩综合久久| 国产欧美日韩精品专区| 国产精品亚洲а∨怡红院| 亚洲人成在久久综合网站| 欧美性猛交xxxx免费看蜜桃| 亚洲av永久无码精品漫画| 高清不卡一区二区三区| 国产精品调教视频一区| 亚洲第一无码精品立川理惠| 亚洲综合久久成人a片红豆| 欧美不卡高清一区二区三区| 国内精品伊人久久久久av一坑| 亚洲乱色熟女一区二区三区丝袜| 小荡货好紧好爽奶头大视频| 无套内内射视频网站| 2018天天躁夜夜躁狠狠躁| 无码无遮挡在线观看免费| 亚洲色资源在线播放| 国产精品无码久久一线| 成年轻人网站色直接看| 亚洲精品tv久久久久久久久j|