?數據結構自考2016年10月真題
摘要:本試卷為單選題型,填空題,算法閱讀,算法設計等題型。
數據結構自考2016年10月真題及答案解析
本試卷為單選題型,填空題,算法閱讀,算法設計等題型。
一、單項選擇題(本大題共15小題,每小題2分,共30分) 在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代碼填寫在題后的括號內。錯選、多選或未選均無分。
1.下列選項中,不屬于線性結構特征的是( )
A.數據元素之間存在線性關系
B.結構中只有一個開始結點
C.結構中只有一個終端結點
D.每個結點都僅有一個直接前驅
2.設17個元素的順序表中,若將第i(1≤i
A.j-i-1
B.j-i
C.j-i-+1
D.i-j
3.若用一個大小為7的數組作為循環(huán)隊列的存儲結構,且當前rear和front的值分別為2和4,在此之前的操作是從隊列中刪除了一個元素及加入兩個元素,請問這3個操作之前rear和front的值分別是( )
A.0和1
B.0和3
C.3和6
D.4和5
4.已知廣義表LS=(((a)),((b,(c)),(d,(e,f))),0),LS的長度是( )
A.2
B.3
C.4
D.5
5.一棵完全二叉樹T的全部k個葉結點都在同一層中且每個分支結點都有兩個孩子結點。樹中包含的結點數是( )
A.k
B.2k-1
C.
D.
6.如果某二叉樹的前序遍歷序列為abced,中序遍歷序列為cebda,則該二叉樹的后序遍歷序列是( )
A.cedba
B.decba
C.ecdba
D.ecbad
7.一個森林有m棵樹,頂點總數為n,則森林中含有的總邊數是( )
A.m
B.n-1
C.n-m
D.n+m
8.設圖的鄰接矩陣A如下所示。各頂點的度依次是( )
A.1,2,1,2
B.2,2,1,1
C.3,4,2,3
D.4,4,2,2
9.若對下列無向圖進行深度優(yōu)先遍歷,得到的正確遍歷序列是( )
A.h,c,a,b,d,e,g,f
B.e,a,f,g,b,h,c,d
C.d,b,c,a,h,e,f,g
D.a,b,c,d,h,e,f,g
10.己知有向圖G如下所示,G的拓撲序列是( )
A.a,b,e,c,d,f,g
B.a,c,b,f,d,e,g
C.a,C,d,e,b,f,g
D.a,c,d,f,b,e,g
11.下列排序算法中,在每一趟都能選出一個元素放到其最終位置上的是( )
A.插入排序
B.希爾排序
C.歸并排序
D.直接選擇排序
12.對一組數據(2,12,16,88,5,10)進行排序,若前3趟排序結果如下:第一趟:2,12,16,5,10,88第二趟:2,12,5,10,16,88第三趟:2,5,10,12,16,88則采用的排序方法是( )
A.冒泡排序
B.希爾排序
C.歸并排序
D.基數排序
13.設有序表為{9,12,21,32,41,45,52},當二分查找值為52的結點時,元素之間的比較次數是( )
A.1
B.2
C.3
D.4
14.下列選項中,既能在順序存儲結構也能在鏈式存儲結構上進行查找的方法是( )
A.散列查找
B.順序查找
C.二分查找
D.以上選項均不能
15.在一棵5階B樹中,每個非根結點中所含關鍵字的個數最少是( )
A.1
B.2
C.3
D.4
二、填空題(本大題共10小題,每小題2分,共20分) 請在每小題的空格中填上正確答案。錯填、不填均無分。
11.兩個棧S1和S2共用含100個元素的數組S[0一99],為充分利用存儲空間,若S2的棧底元素保存在S[99]中,則S1的棧底元素保存在_______中。
12.在一個單鏈表中,已知指針變量q所指結點不是表尾結點,若在q所指結點之后插入指針變量S所指結點,則正確的執(zhí)行語句是_______。
13.設順序表第1個元素的存儲地址是1000,每個數據元素占6個地址單元,則第11個元素的存儲地址是_______。
14.二叉樹采用順序存儲方式保存,結點Z保存在數組A[7]中,若X有右孩子結點L則Y保存在_______中。
15.一棵二叉樹中,度數為l的結點個數為n1,度數為2的結點個數為n2,則葉結點的個數為_______。
16.已知廣義表LS=((a,b),c,d),head(LS)是_______。
17.在無向圖G的鄰接矩陣A中,若A[i,j]=1,則A[j,i]=_______。
18. 已知大根堆中的所有關鍵字均不相同,最大元素在難項,第2大元素可能存在的位置有2個,第3大元素可能存在的位置有_______個。
19.在有n個元素組成的順序表上進行順序查找。若查找每個元素的概率相等,則查找成功時平均查找長度是_______。
110.線性探查法和拉鏈法解決的是散列存儲中的_______問題。
三、解答題(本大題共4小題,每小題5分,共20分)
21.對題26圖中所給的二叉排序樹T回答下列問題。(1)給出能生成r的2種關鍵字插入序列;(2)給出r的前序遍歷序列。
22.對題27圖所示的無向帶權圖G,回答下列問題。(1)給出圖G的鄰接矩陣;(2)給出圖G的一棵最小生成樹。
23.現有5個權值分別是20、31、16、7和15的葉結點,用它們構造一棵哈夫曼樹,畫出該樹。
24.對于給定的一組關鍵字序列{26,18,60,65,45,13,32},寫出使用直接選擇排序方法將其排成升序序列的過程。
四、算法閱讀題(本大題共4小題,每小題5分,共20分)
31.設非空雙向循環(huán)鏈表L的頭指針為head,表結點類型為DLNode,定義如下。typedef int DataType;typedef struct dlode{ DataType data; //data是數據域 struct dlnode * prior, *next; // prior指向前趨結點,next指向后繼結點 }DLNode; typedef DLNode * DLinkList;初始時,L中所有結點的prior域均為空(NULL),next域和data域中已經正確賦值。如題30圖a所示。函數f30完成的功能是:將L中各結點的prior域正確賦值,使L成為雙向循環(huán)鏈表。如題30圖b所示。將空白處應填寫的內容答在答題卡上。void f30( DLinkList head) { DLNode *p; p=head; while(p->next!=____(1)____) { ____(2)____=p; p=p->next; } ____(3)____=p;}
32.已知二叉樹的二叉鏈表類型定義如下,閱讀程序,并回答問題。typedef char DataType;typedef struct node{ DataType data; //data是數據域 struct node *lchild, *rchild; //分別指向左、右孩子結點 }BinTNode; typedef BinTNode * BinTree; void f31( BinTree bt){ if (bt!=NULL) { printf("%c", bt->data ); f31(bt->lchild; printf("%c", bt->data ); }}若二叉樹如下所示,寫出調用f31(T)的輸出結果。
33.閱讀下列程序,寫出f32的輸出結果。void f32(){ SeqStack *S; char x, y; Initstack(S); x= 'h'; y= 't'; Push(S, x); Push(S, 'c'): x= Pop(S); Push(S, x); Push(S, y); Push(S, 'a'); Push( S, x ) while( !StackEmpty(S)) { y= Pop(S); printf(”%c”,y);} printf ("%c "'!');}
34.閱讀程序,回答下列問題。int f33( NodeType R[], KeyType k, int n){ int i=n-1, count=1; R[0]. key =k; while(R[i]. key !=k) { i--; count++;} if(i-==0) return-1; else return count;}(1)變量 count的含義是什么?(2)f33的功能是什么?
五、算法設計題(本大題共1小題,共10分)
41.已知單鏈表類型定義如下:typedef struct node { int data; struct node *next;}ListNode;typedef ListNode * List_pt;單鏈表L中結點數不少于2。設計算法判斷L中存儲的全部n個數據是否是斐波那契序列的前n項。如果是,則函數返回1,否則返回0。函數原型如下:int IsF(List_ptr head); //判定是否是斐波拉契序列注:斐波拉契序列的定義為:f0=0,f1=,,fn=fn-1+fn-2 (n≥2)
延伸閱讀
- 2025年4月自考政治經濟學(中級)全真模擬試題
- 2023年10月自考00257票據法真題
- 2023年10月自考00249國際私法真題
- 2023年10月自考00246國際經濟法概論真題
- 2023年10月自考00245刑法學真題
- 2023年10月自考00186國際商務談判真題
自考微信公眾號
掃碼添加
自考備考資料免費領取
去領取