数据结构考试试题Word格式文档下载.docx

上传人:b****3 文档编号:17930962 上传时间:2022-12-12 格式:DOCX 页数:19 大小:107.90KB
下载 相关 举报
数据结构考试试题Word格式文档下载.docx_第1页
第1页 / 共19页
数据结构考试试题Word格式文档下载.docx_第2页
第2页 / 共19页
数据结构考试试题Word格式文档下载.docx_第3页
第3页 / 共19页
数据结构考试试题Word格式文档下载.docx_第4页
第4页 / 共19页
数据结构考试试题Word格式文档下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数据结构考试试题Word格式文档下载.docx

《数据结构考试试题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构考试试题Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。

数据结构考试试题Word格式文档下载.docx

(每题5分,共25分)

1.已知一棵二叉树,其中序序列DBCAFGE,后序序列DCBGFEA,构造该二叉树。

2.设哈希表长度为11,哈希函数H(K)=(K的第一字母在字母表中的序号)MOD11

假设输入顺序为(D,BA,TN,M,CI,I,K,X,TA)t处置冲突方式为线性探测再散列或链地址法,要求构造哈希表,并求出等概率情形下査找成功平均査找长度。

3.有一组关键字{50,52,85,22,96,17,36,55},请用快速排序,写出第一趙排序结

4.占知叶子结点值2,3,5,6,9,11,构造哈夫曼树,计算其带权途径长度。

5.画出8个结点的折半判定树。

六、算法设计题:

(每题15分,共30分)(仅要求给出子程序)

1-编写算法,判定带头结点的双向循环链表L是不是对称。

(15分)

对称是指:

设各元素值al,a2v..,an,那么有ai=an-i+l,

即指:

al=an,a2=an-1

结点结构为:

prior

data

next

2.二叉排序树T用二叉链表表示,其中各元素均不相同。

(1)写出递归算法,按递减顺序打印各元素的值。

(10分)

(2)写出完成上述要求的非递归算法。

(5分)

《数据结构》试卷参考答案

一、简答问题:

(每题4分,共16分)

1.集合结构、线性结构、树形结构、网状结构

2.线性结构的前驱与后继之间为一对一关系,非线性结构的前驱与后继之间一样为一对多或多对多关系。

3.解决特定问题的有限指令序列。

有限性.确信性.可行性、有0个或多个输入数据、有1个或多个输出结果。

4.堆排序。

因为一趟堆排序排定一个元索,只需进行前1()趟堆排序就能够够了。

其它排序方式均需进行完全排序°

(每题1分.共5分)

正确在()内打不然打o

1.()2.(V)3.(V)4.()5.(V)

(每题1分,共4分)

1.C)2・A)3.A)4.D)

海题2分,共20分)

1.972.11+13.链域数量不同

4.哈希査找法5.26-16.1168

7.p->

next、s8.(a,b)、(c,d)

9.P->

next==LA10.直接插入

五、构造题:

2.

1

2

3

4

5

6

7

8

9

10

K

TA

BA

M

D

CI

X

TN

I

ASL=20/9

MI

XTA

ASL=15/9

3.

{36,17,22,50,96,85,52,55}

WPL=11X2+6X2+9X2+5X3+2X4+3X4=87

[注]:

哈夫曼树的左右子树能够互换。

5.

OOO

CD

若是求中点时采纳向上取整,那么二叉树的形态为左子树偏长。

(每题15分,共30分)(仅要求给出子程序)

1•[解答]:

intjudge(DLinkListL){

p=L->

next;

q=L->

prior;

while(p!

=q)

{if(p->

data!

=q->

data)return0;

if(p->

next==q)return1;

p=p->

q=q->

}

return1;

能够不用返回值,而用打卬信息。

2.[解答h

(1)

voidprint_l(BiTreeT){

if(T!

=NULL)

{print_l(T->

RChild);

printf(“%c"

T->

data);

print_l(T->

LChild);

voidPrint_2(BiTreeT)

{InitStack(&

S);

P=T;

while(p!

=NULLII!

IsEmpty(S)){while(p!

{Push(&

S,p);

p=p->

RChild;

if(!

IsEmpty(S))

{Pop(&

S,&

p);

printf(“%c"

p->

data);

p=p・>

LChild;

数据结构辅导试题二

一、简答题:

(每题3分,共15分)

1.什么情形下二叉排序树的査找性能较好?

什么情形下二叉排序树的査找性能最差?

2.比较顺序表与单链表的优缺点。

3.请写出栈的链式存储结构的类型概念。

4.在起泡排序进程中,有的关键字在某趟排序中可能朝着与最终排序相反的方向移动,试举例说明之。

5.简述参数传递的要紧方式及其特点。

二-判定正误:

(每题1分,共5分)

正确在()内打不然打X。

()

(1)在拓朴序列中,若是结点Vi排在结点VJ的前面,那么必然存在从Vi到Vj的途径。

(°

(2)在采纳线性探测法处置冲突的散列表中,所有同义词在表中必然相邻。

()(3)在一个小根堆中,具有最大值的元素必然是叶结点。

()(4)索引顺序表的特点是块间可无序,但块内必然要有序。

()(5)哈夫曼树中没有度为1的结点,因此必为满二叉树。

三、单项选择题:

1.关于只在表的首.尾进行插入操作的线性表,宜采纳的存储结构为:

A)顺序表B)用头指针表示的单循环链表

C)用尾指针表示的单循环链表D)单链表

2.假设以第一个元素为分界元素,对字符序列(Q,H,C,Y,P,A,M,S,R,D,F,X)进行快速排序,那么第一次划分的结果是:

A)(A,C,D,F,H,M9P,Q,R,S,X,Y)B)(A,F,H,C,D,P,M,Q,R,S,Y,X)

C)(F,H,C,D,P,A,M,Q,R,S,Y,X)D)(P,A,M,F,H,C,D,Q,S,Y,R,X)

3.下面是三个关于有向图运算的表达:

(1)求有向图结点的拓扑序列,其结果必然是唯一的

(2)求两个指向结点间的最短途径,其结果必然是唯一的

(3)求AOE网的关键途径,其结果必然是唯一的

其中哪个(些)是正确的?

A)只有

(1)B)

(1)和

(2)C)都正确D)都不正确

4.假设进栈序列为a,b,c,那么通过入出栈操作可能取得的a,b,c的不同排列个数为:

A)4B)5C)6D)7

5.以下关于广义表的表达中,正确的选项是:

A)广义表是由0个或多个单元素或子表组成的有限序列

B)广义表至少有一个元素是子表

C)广义表不能递归概念D)广义表不能为空表

(每题2分决20分)

1.一棵含有101个结点的完全二叉树存储在数组A[1..1O1]中,对l<

k<

10t假设A[k]是非

叶结点,那么k的最小值是:

k的最大值是:

o

2.s=?

YOUAREJUDGINGITRIGHTORWRONGS顺序执行以下操作:

SubString(sub11,8片SubString(sub2,s,20,5);

StrCat(subl,sub2);

那么最后subl的值

3.假设一个算法中的语句频度之和为T(n)=3720n+4nlogn,那么算法的时刻复杂度为

4.广义表((((a),b)£

),d啲表头是,表尾是

5.已知有向图的邻接矩阵,要计算i号结点的入度,计算方式是:

将累加。

6.要在一个单链表中p所指结点以后插入一个子链表,子链表第一个结点的地址为s,子

链表最后一个结点的地址为t,那么应执行操作:

7.用带头结点的循环链表表示的队列,假设只设尾指针rear,那么队空的条件

是。

8.已知二维数组A[10](20]采纳行序为主方式存储,每一个元素占2个存储单元,而且A[0][0]

的存储地址是1024,那么A[6][18啲地址是

9.在表示二叉树的二叉链表中,共有个空链域。

io-n个极点的连通无向图至少有条边,最多有

条边。

5.构造题:

(每题6分,共3()分)

1.已知二叉树的中序序列为DBGEAFC,后序序列为DGEBFCA,给出对应的二叉树。

2.已知一个图的极点为A.B、C.D,其邻接矩阵的上三角元素全为0(包括主对角线元素人其他元素均为1。

请画出该图,并给出其邻接表。

3.给定权值{8,12,4,5,26,16,9},构造一棵带权途径长度最短的二叉树,并计算其带权途径长度。

4.图2表示一个地域的通信网,边表示城市间的通信线路,边上的权值表示架设线路花费的代价,请找出能连通每一个城市、且总代价最省的条线路。

图2

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

请写出排序进程中取得的初始堆和一趟排序后的序列状态。

(共25分)

1.设有一个由正整数组成的单链表L(含头结点),编写完成以下功能的算法:

找出最小值结点P,假设最小值是奇数,那么删除结点P。

[15分]

2.已知树用小孩兄弟链表存储,root指向根结点。

编写算法,逐层遍历这棵树。

[10分]

1.简答题:

1.前驱与后继之间一样为一对多或多对多的关系。

2.顺序表优势:

随机査找,存储密度大

顺序表缺点:

描入.删除不便,静态分派.表长固定

单链表优势,插入.删除方便,动态分派,表长灵活

单链表缺点:

查找不便,存储密度小

3.关键字相同的两个记录,排序前后其前后顺序不变。

4.typedefstructnode{

ElemTypedata;

structnode♦next;

}inkSt^ck*

5.当二叉排jr樁接近平稳二叉树或完全二叉树时査找性能较好,当二叉排序树为单边单枝二叉树时査找性能最差。

2.判定正误:

正确在()内打丁,不然打Xo

(X)

(1)(X)

(2)3)(3)(X)(4)(X)(5)

1.C)2.C)3.D)4.B)5.A)

侮题2分决20分)

1.12.5YOUARERIGHT5

3.0(nlogn)4.(((a),b),c),(d)

5.i列元素6.t->

next=p->

next,p->

next=s

7.rear->

next==rear8.1300

9.n+1

10-nT

(每题6分,共30分)1.

 

WPL=8X3+4X4+5X4+16X2+9X3+12X3+26X2=207

[解1]:

11

[解2]:

[注h边上的权值能够省略。

1・

初始堆:

05,23,16,58,94,72,61,87

一趟排序后的序列状态:

筛成堆后为:

16,23,61,58,94,72,87,05

16

23

61

58)<

94

72JI87

05

若是釆纳大根堆,应适当减分。

(共25分)3・[15分]

voidmin(LinkListL){if(L->

next==NULL)return;

q=L;

r=L->

m=r->

data;

while(r->

next!

{if(r->

next->

data<

m)

{m=r->

q=r;

}r=r->

p=q->

if(m%2==l){q->

free(p);

}

4.[10分]

voidlayer(CSTreeroot){

InitQueue(&

Q);

EnterQueue(&

Q,root);

while(!

Empty(Q))

{DelQueue(&

Q,&

visit(p);

FirstChild;

{EnterQueue(&

Q,p);

NextSibling;

数据结构辅导试题三

一、简答题(15分,每题3分)

1.简要说明算法与程序的区别。

2.在哈希表中,发生冲突的可能性与哪些因素有关?

什么缘故?

3・说明在图的遍历中,设置访问标志数组的作用。

4.说明以下三个概念的关系:

头指针,头结点,首元素结点。

5・在一样的顺序队列中,什么是假溢出?

如何解决假溢出问题?

二、判定题(10分.每题1分)

正确在括号内打V,错误打X

()

(1)广义表(((a),b),c)的表头是((a),b),表尾是(c)。

()

(2)在哈夫曼树中,权值最小的结点离根结点最近。

()(3)基数排序是高位优先排序法。

()(4)在平稳二叉树中,任意结点左右子树的髙度差(绝对值)不超过lo

()(5)在单链表中,给定任一结点的地址p,那么可用下述语句将新结点S插入结点P的后面:

p->

next=s;

s->

next=p->

()(6)抽象数据类型(ADT)包括概念和实现两方面,其中概念是独立于实现的,概念仅给出一个ADT的逻辑特性,没必要考虑如安在运算机中实现。

()(7)数组元素的下标值越大,存取时刻越长。

()(8)用邻接矩阵法存储一个图时,在不考虑紧缩存储的情形下,所占用的存储空间大小只与图中结点个数有关,而与图的边数无关。

()(9)拓扑排序是按AOE网中每一个结点事件的最先发生时刻对结点进行排序。

()(10)长度为1的串等价于一个字符型常量。

三、单项选择题(10分,每题1分)

1・科乍序时扫描待排序记录序列,按序比较相邻的两个元素的大小,逆序时就互换位置。

这是哪一种排序方式的大体思想?

A.堆排序B、直接插入排序C.快速排序D.冒泡排序

2.已知一个有向图的邻接矩阵表示,要删除所有从第1个结点发出的边,应该:

A)将邻接矩阵的第1行删除B)将邻接矩阵的第1行元素全数置为0C)将邻接矩阵的第i列删除D)将邻接矩阵的第1列元素全数置为0

3.有一个含头结点的双向循环链表,头指针为head,那么其为空的条件是:

A.head->

prlro==NULLB.head->

next==NULL

C.head->

next==headD.head->

priro==NULL

4・在顺序表(3,6,&

10,12,15,16,18,21,25,30)中,用折半法査找关键码值11,所需的关键码比较次数为:

A)2B)3C)4D)5

5.以下哪个不是队列的大体运算?

A)从队尾插入一个新元素B)从队列中删除第i个元素

C)判定一个队列是不是为空D)读取队头元素的值

6.在长度为n的顺序表的第i个位置上插入一个元素(l<

i<

n+l),元素的移动次数为:

A)n-1+1B)n-1C)ID)1-1

7.关于只在表的首、尾两头进行插入操作的线性表,宜采纳的存储结构为:

A)顺序表B)用头指针表示的循环单链表

C)用尾指针表示的循环单链表D)单链表

8.对包括n个元素的哈希表进行査找,平均査找长度为:

A)O(log2n)B)O(n)C)O(nlog2n)D)不直接依托于n

9.将一棵有100个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点

'

进行编号,根结点编号为1,那么编号最大的非叶结点的编号为:

A、4849C、50D.51

10.某二叉树结点的中序序列为A、B、C、D、E、F、G,后序序列为B、D、c.A.F.G.E,那么其左子树中结点数量为:

A)3B)2C)4D)5

四、填空题(10分,每空1分)

1.填空完成下面一趙快速排序算法:

intQKPass(RecordTyper[],intlow,inthigh)

{x=r[low];

while(low<

high)

{

high&

r[]•key>

=)

high・・;

if(low<

{r[]=r[high];

low++;

r[]•key<

x.key)

1OW++;

If(low<

{r[]=r[low];

high-;

r[low]=x;

returnlow;

2.假设用循环单链表实现队列,假设队列非空,且队尾指针为R,那么将新结点

S加入队列时,需执行下面语句:

:

R=S;

3.一般是以算法执行所花费的和所占用的来判定一个算法

的好坏。

4.已知一个3行、4列的二维数组A(各维下标均从1开始),若是按“以列为

主”的顺序存储,那么排在第8个位置的元素是:

5.高度为h的完全二叉树最少有个结点。

五、构造题(20分)

1.(4分)已知数据结构DS的概念如下,请给出其逻辑结构图示。

DS=(D,R)

D={a,b,c,d,e,f,g}

R={T}

T={<

a,b>

va,g>

vb,g>

vc,b>

vd,c>

<

d,f>

ve,d>

f,a>

f,e>

vg,c>

vg,d>

g,f>

2.(6分)对以下关键字序列成立哈希表:

(SUN,MON,TUE,\VED,THU,FRI,SAT),哈希函数为H(K)=(K中最后一个字母在字母表中的序号)MOD7o用线性探测法处置冲突,要求构造一个装填因子为的哈希表,并计算出在等概率情形下査找成功的平均査找长度。

3.(6分)将关键字序列(3,26,12,6b38,40,97,75,53,87)调整为

大根堆。

4.(4分)已知权值集合为:

{5,7,2,3,6,9},要求给出哈夫曼树,并计算其带权途径长度WPLO

六、算法分析题(10分)

阅读下面程序,并回答有关问题。

其中BSTree为用二叉链表表示的二叉排序树类型。

(1)简要说明程序功能。

(2)n个结点的满二叉树的深度h是多少?

(3分)

(3)假设二叉排序树*bst是有n个结点的满二叉树,给出算法的时刻复杂度。

(2分)

intProc(BSTree*bst,KeyTypeK)

{BSTreef,q,s;

s=(BSTree)malloc(sizeof(BSTNode));

s・>

key=K;

lchild=NULL;

rchlld=NULL;

if(*bst==NULL){*bst=s;

return1;

f=NULL;

q=*bst;

while(q!

=NULL)

{if(K<

q->

key)

{f=q;

q=q->

lchild;

else

q=q・>

「child;

if(K<

f->

key)f・>

lchild=s;

elsef->

rchild=s;

七、算法设计题(25分)

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

当前位置:首页 > 法律文书 > 调解书

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

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