自考数据结构历年考题综合答案Word文档下载推荐.docx

上传人:b****5 文档编号:19452340 上传时间:2023-01-06 格式:DOCX 页数:81 大小:359.48KB
下载 相关 举报
自考数据结构历年考题综合答案Word文档下载推荐.docx_第1页
第1页 / 共81页
自考数据结构历年考题综合答案Word文档下载推荐.docx_第2页
第2页 / 共81页
自考数据结构历年考题综合答案Word文档下载推荐.docx_第3页
第3页 / 共81页
自考数据结构历年考题综合答案Word文档下载推荐.docx_第4页
第4页 / 共81页
自考数据结构历年考题综合答案Word文档下载推荐.docx_第5页
第5页 / 共81页
点击查看更多>>
下载资源
资源描述

自考数据结构历年考题综合答案Word文档下载推荐.docx

《自考数据结构历年考题综合答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《自考数据结构历年考题综合答案Word文档下载推荐.docx(81页珍藏版)》请在冰豆网上搜索。

自考数据结构历年考题综合答案Word文档下载推荐.docx

A.只包含空格符的串B.长度为0的串

C.只包含一个空格符的串D.不含字母的串

13.采用三元组表存储稀疏矩阵,是为了()。

A.节省存取时间B.节省存储空间

C.提高对矩阵元素的访问速度D.提高对矩阵运算的可靠性

14.高度为h的二叉树最多有()个节点。

A.2h-1B.2hC.2h-1D.2h-1+1

15.N个顶点,e条边的无权有向图的邻接矩阵中非零元素有()个。

A.nB.n-eC.eD.e+n

16.直接选择排序在最好情况下的时间复杂度是()。

A.O(n)B.O(nlog2n)C.O

(1)D.O(n2)

17.N个结点的m阶B树至少包含()个关键字。

A.(m-1)*nB.nC.(「m/2」-1)*(n-1)+1D.n*「m/2」-1)

18.在散列文件中,同一个桶内的所有记录应当具有()。

A.相同的关键字B.相同的散列值

C.相同的某个属性值D.相同的存取频率

19.在最坏的情况下,查找成功时二叉排序树的平均查找长度(   )

A.小于顺序表的平均查找长度B.大于顺序表的平均查找长度

C.与顺序表的平均查找长度相同D.无法与顺序表的平均查找长度比较

20.散列表中由于散列到同一个地址而引起的“堆积”现象,是由(   )

A.同义词之间发生冲突引起的

B.非同义词之间发生冲突引起的

C.同义词之间或非同义词之间发生冲突引起的

D.散列表“溢出”引起的

二、填空题(每空1.5分,计15分)

21.ALV树是一种平衡的二叉排序树,树中任一结点的()

22.在VSAM文件的控制区间中,记录的存储方式为()

23.单链表的存储密度()顺序表的存储密度。

24.设SQ是循环队列,存储在数组D[M]中,则SQ入队操作对其队尾指针rear的修改是()。

25.长度为n的串s1与长度为2n的串s2的比较运算的时间复杂度是()。

26.广义表(((a,b,c),d,e,f))的长度是()。

27.N(n>

0)个节点的哈夫曼树恰含()个度为1的节点。

28.深度为n的二叉树最少有()个结点。

29.N(n>

0)个顶点的连通有向图至少有()条边。

30.对N(n>

0)个记录进行冒泡排序,最少要交换()记录。

三、简答题(每小题5分,计30分)

31.给出下面森林对应的二叉树及二叉树的后续序列。

(图1)

32.一棵树有3度节点100个,2度节点200个,该树有叶子节点多少个,该树可以有多少个度为1的节点?

33.设有广义表A,A=(((a,b),x),((a),(b)),(c,(d,(y)))),写出由A得到y的对广义表A的操作序列。

34.画出用普里姆算法构造下面所示带权无向图的最小生成树的示意图。

35.写出下列用快排序对下列序列进行两次划分的过程及结果。

3726514877698221171321395518

36.画出对下面的5阶B树插入关键字37后的结果。

四、理解设计题(每小题5分,计15分)

37.设某带头结头的单链表的结点结构说明如下:

typedefstructnodel{intdata;

structnodel*next;

}node;

试设计一个算法:

voidcopy(node*headl, node*head2),将以head1为头指针的单链表复制到一个不带有头结点且以head2为头指针的单链表中。

(5分)

38.阅读下列算法,并回答下列问题:

(1)该算法采用何种策略进行排序?

(2)算法中R[n+1]的作用是什么?

typedefstruct{KeyTypekey;

infoTypeotherinfo;

}nodeType;

typedefnodeTypeSqList[MAXLEN];

voidsort(SqListR,intn){//n小于MAXLEN-1

intk;

i;

for(k=n-1;

k>

=1;

k--)

if(R[k].key>

R[k+1].key){

R[n+1]=R[k];

for(i=k+1;

R[i].key<

R[n+1].key;

i++)R[i-1]=R[i];

R[i-1]=R[n+1];

}}

39.下面函数BinInsert的功能是对线性表R的前n个元素实现二分法插入排序。

请在空缺处填入适当的语句,使其能够正确工作。

typedefstructnode{intkey;

/*otherInfo*/}Node;

typedefNodeSeqlist[100];

voidBinInsert(SeqlistR,intn)

{intlow,up,mid,i,j;

Nodet;

for(i=0;

i<

n;

i++)

{_____

(1)________________;

low=0;

__________

(2)_____________;

while(low<

up)

{mid=(low+up)/2;

if(R[mid].key==t.key){_________(3)__________;

break;

}

if(t.key<

R[mid].key)________(4)________;

else_______(5)_____;

}

for(j=i;

j>

low;

j--)R[j]=R[j-1];

_________(6)_____________;

五、算法实现题(共10分)

40.假设二叉树T采用如下定义的存储结构:

typedefstructnode{DataTypedata;

structnode*lchild,*rchild,*parent;

}PBinTree;

其中,结点的lchild域和rchild域已分别填有指向其左、右孩子结点的指针,而parent域中的值为空指针(拟作为指向双亲结点的指针域)。

请编写一个递归算法,将该存储结构中各结点的parent域的值修改成指向其双亲结点的指针。

_

2006

一.单项选择题

1.D2.B3.C4.B5.D6.C7.B8.D9.D10.D

11.A12.B13.B14.A15.C16.A17.C18.B19.C20.B

二.填空题

21.左右子树树高之差的绝对值不大于123.小于24.sq->

rear=(sq->

rear+1)%m25.O(n)26.127.0

28.n29.n30.0

三.简答题

31.

GFEDCBJIKHA

32、n0=n2+2n3+1

=200+2*100+1

=401

33、Tail(Head(Tail(Head(Tail(Tail(A)))))=(y)

34、

35、182621131721【37】82697748395551

36、

四.阅读理解题

37、一边遍历,一边申请新结点,链接到head2序列中。

38、直接插入排序。

哨兵。

避免边界检测,提高程序运行效率。

39、t=R[i];

up=i-1;

low=mid+1;

up=mid-1;

R[low]=t;

2002

1.某算法的空间花费s(n)=2n+n100+nlog2n+n101,则其空间复杂度为()。

A.O(nlog2n)B.O(n100)C.O(n101)D.O(2n)

2.单链表中的存储密度一定()。

3.在顺序栈中删除一个元素,至少要移动()元素。

4.空串是()。

5.采用三元组表存储稀疏矩阵,是为了()。

6.高度为h的二叉树最多有()个节点。

7.N个顶点,e条边的无权有向图的邻接矩阵中非零元素有()个。

8.直接选择排序在最好情况下的时间复杂度是()。

9.N个结点的m阶B树至少包含()个关键字。

10.在散列文件中,同一个桶内的所有记录应当具有()。

11.某算法的时间花费T(n)=0.05n2+100n+10,则该算法的时间复杂度为()。

12.单链表的存储密度()顺序表的存储密度。

13.设SQ是循环队列,存储在数组D[M]中,则SQ入队操作对其队尾指针rear的修改是()。

14.长度为n的串s1与长度为2n的串s2的比较运算的时间复杂度是()。

15.广义表(((a,b,c),d,e,f))的长度是()。

16.N(n>

17.深度为n的二叉树最少有()个结点。

18.N(n>

19.对N(n>

20.倒排文件的每个倒排表项包含()和记录地址。

21.给出下面森林对应的二叉树及二叉树的后续序列。

22.一棵树有3度节点100个,2度节点200个,该树有叶子节点多少个,该树可以有多少个度为1的节点?

23.设有广义表A,A=(((a,b),x),((a),(b)),(c,(d,(y)))),写出由A得到y的对广义表A的操作序列。

24.设有程序:

intf(inta[],intn,intkey)

{inti;

for(i=0;

if(a[i]==key)returni;

return-1;

若key在a[j](j=0,1,2,…n-1)中的概率为2-(j+1),key不在a中的概率为2-n,那么查找Key时平均比较Key的次数是多少,该算法的时间复杂度是多少?

25.画出用普里姆算法构造下面所示带权无向图的最小生成树的示意图。

四、理解题(每题6分,计12分)

26.指出下面函数GV的功能及其返回值的含义。

其中,Tab是存储稀疏矩阵A的非零元素的长度为len的三元组表。

#include<

stdio.h>

typedefstruct{introw,col,val;

}TriTupleNode;

intGV(inti,intj,intlen,TriTupleNodeTab[])

{intk;

for(k=0;

k<

len;

k++)

if(tab[k].row==i&

&

tab[k].col==j)returnTab[k].val;

return0;

27.设P1和P2是两个单链表,他们的元素都递增有序,指出下面函数f的功能。

typedefintDataType;

typedefstructnode{DataTypedata;

structnode*next;

}ListNode;

typedefListNode*LinkList;

LinkListf(LinkListp1,LinkListp2)

{LinkListh=NULL,p;

while(p1&

p2)

{if(p1->

data<

p2->

data){p=p1;

p1=p1->

next;

}

else{p=p2;

p2=p2->

p->

next=h;

h=p;

while(p1){p=p1;

while(p2){p=p2;

returnh;

五、填充题(每题18分)

28.下面函数BinInsert的功能是对线性表R的前n个元素实现二分法插入排序。

2002D

一、单项选择题

1.D2.D3.A4.B5.B6.A7.C8.D9.C10.B

二、填空题(每小题2分,共30分)

11.O(n2)12.小于13.rear=(rear+1)%m14.O(n)15.116.017.n18.n19.020.次关键字

三、简答题

21、(见下图)后序序列GFEDCBJIKHA

22、叶结点有401个,度为1的结点可以有任意多个。

24、平均比较次数=1*2-(0+1)+2*2-(1+1)+……+n*2-((n-1)+1)+n*2-n

=2-2-(n-1)-n*2-n

时间复杂度为:

O

(1)

25、见图。

四、理解题

26、在三元组表Tab中,查找稀疏矩阵中元素A[I,J]的值,并把此值作为函数的返回值。

27、把两个递增有序的单链表合并为一个递减有序的单链表。

五、填充题

t=R[i];

up=i-1low=mid+1

up=mid-1low=mid+1R[low]=t

2002-10

一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。

5.为查找某一特定单词在文本中出现的位置,可应用的串运算是()

A.插入B.删除C.串联接D.子串定位

6.已知函数Sub(s,i,j)的功能是返回串s中从第i个字符起长度为j的子串,函数Scopy(s,t)的功能为复制串t到s。

若字符串S=″SCIENCESTUDY″,则调用函数Scopy(P,Sub(S,1,7))后得到()

A.P=″SCIENCE″B.P=″STUDY″

C.S=″SCIENCE″D.S=″STUDY″

7.三维数组A[4][5][6]按行优先存储方法存储在内存中,若每个元素占2个存储单元,且数组中第一个元素的存储地址为120,则元素A[3][4][5]的存储地址为()

A.356B.358C.360D.362

8.如右图所示广义表是一种()

A.线性表

B.纯表

C.结点共享表

D.递归表

9.下列陈述中正确的是()

A.二叉树是度为2的有序树

B.二叉树中结点只有一个孩子时无左右之分

C.二叉树中必有度为2的结点

D.二叉树中最多只有两棵子树,并且有左右之分

10.n个顶点的有向完全图中含有向边的数目最多为()

A.n-1B.nC.n(n-1)/2D.n(n-1)

11.已知一个有向图如右所示,则从顶点a出发进行深度优先偏历,不可能得到的DFS序列为()

A.adbefcB.adcefbC.adcbfe

D.adefcb

12.在最好和最坏情况下的时间复杂度均为O(nlogn)且稳定的排序方法是()

A.快速排序B.堆排序C.归并排序D.基数排序

13.不可能生成右图所示二叉排序树的关键字序列是()

A.45312

B.42531

C.45213

D.42315

14.ALV树是一种平衡的二叉排序树,树中任一结点的()

A.左、右子树的高度均相同B.左、右子树高度差的绝对值不超过1

C.左子树的高度均大于右子树的高度D.左子树的高度均小于右子树的高度

15.在VSAM文件的控制区间中,记录的存储方式为()

A.无序顺序B.有序顺序

C.无序链接D.有序链接

二、填空题(本大题共10小题,每小题2分,若有两个空格,每个空格1分,共20分)

16.若一个算法中的语句频度之和为T(n)=3720n+4nlogn,则算法的时间复杂度为________。

17.在如图所示的链表中,若在指针p所指的结点之后插入数据域值相继为a和b的两个结点,则可用下列两个语句实现该操作,它们依次是________和________。

 

18.假设以S和X分别表示进栈和退栈操作,则对输入序列a,b,c,d,e进行一系列栈操作SSXSXSSXXX之后,得到的输出序列为________。

19.串S=″Iamaworker″的长度是________。

20.假设一个10阶的下三角矩阵A按列优顺序压缩存储在一维数组C中,则C数组的大小应为________。

21.在n个结点的线索二叉链表中,有________个线索指针。

22.若采用邻接矩阵结构存储具有n个顶点的图,则对该图进行广度优先遍历的算法时间复杂度为________。

23.对关键字序列(52,80,63,44,48,91)进行一趟快速排序之后得到的结果为________。

24.由10000个结点构成的二叉排序树,在等概率查找的假设下,查找成功时的平均查找长度的最大值可能达到________。

25.若要找出所有工资低于1500元,职称是副教授,及所有工资低于2000元,职称是教授的记录,则查询条件是________。

三、解答题(本大题共4小题,每小题5分,共20分)

26.已知一个6行5列的稀疏矩阵中非零元的值分别为:

-90,41,-76,28,-54,65和-8,它们在矩阵中的列号依次为:

1,4,5,1,2,4和5。

当以带行表的三元组表作存储结构时,其行表RowTab中的值依次为0,0,2,2,3和5。

请写出该稀疏矩阵(注:

矩阵元素的行列下标均从1开始)。

27.已知树T的先序遍历序列为ABCDEFGHIJKL,后序遍历序列为CBEFDJIKLHGA。

请画出树T。

28.对关键字序列(72,87,61,23,94,16,05,58)进行堆排序,使之按关键字递减次序排列。

请写出排序过程中得到的初始堆和前三趟的序列状态。

初始堆:

________第1趟:

________

第2趟:

________第3趟:

29.在关键字序列(07,12,15,18,27,32,41,92)中用二分查找法查找和给定值92相等的关键字,请写出查找过程中依次和给定值“92”比较的关键字。

四、算法阅读题(本大题共4小题,每小题5分,共20分)

30.以下函数中,h是带头结点的双向循环链表的头指针。

(1)说明程序的功能;

(2)当链表中结点数分别为1和6(不包括头结点)时,请写出程序中while循环体的执行次数。

intf(DListNode*h)

{

DListNode*p,*q;

i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1