商大数据结构习题集.docx

上传人:b****6 文档编号:3727357 上传时间:2022-11-24 格式:DOCX 页数:42 大小:429.61KB
下载 相关 举报
商大数据结构习题集.docx_第1页
第1页 / 共42页
商大数据结构习题集.docx_第2页
第2页 / 共42页
商大数据结构习题集.docx_第3页
第3页 / 共42页
商大数据结构习题集.docx_第4页
第4页 / 共42页
商大数据结构习题集.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

商大数据结构习题集.docx

《商大数据结构习题集.docx》由会员分享,可在线阅读,更多相关《商大数据结构习题集.docx(42页珍藏版)》请在冰豆网上搜索。

商大数据结构习题集.docx

商大数据结构习题集

 

《数据结构》习题集

 

2014年8月

第一章——第五章习题

一、单选或填空题

1.下列程序段中S语句的执行频度为。

for(i=0;i<n;i++)

for(j=0;j<i;j++)

S;

2.下列算法的时间复杂度是()。

for(i=0;i<n;i++)

c[i]=i;

3.算法的时间复杂度可表示为O

(1)、线性阶、平方阶O(n2)、对数阶O(logn)和指数阶O(2n)等。

4以下关于数据结构的基本概念中,叙述正确的是

A)数据元素是数据不可分割的最小单位。

B)数据是数据对象的子集。

C)数据元素之间的关系在计算机中可用顺序映像和非顺序映像两种不同的方法表示。

D)数据结构在计算机中的表示又称为逻辑结构。

5.在数据结构中,数据的逻辑结构包括()。

A)线性结构和非线性结构B)逻辑结构和物理结构

C)顺序结构和链式结构D)虚拟结构和抽象结构

6.在数据结构中,数据的存储结构包括。

A)线性结构和非线性结构B)逻辑结构和物理结构

C)顺序结构和链式结构D)虚拟结构和抽象结构

7.线性结构的数据元素之间存在一种()。

A.一对多关系B.多对多关系

C.多对一关系D.一对一关系

8.在长度为n的顺序表中插入一个元素,需要平均移动个元素。

A)n/2B)n

C)n(n-1)D)n(n+1)

9.在有n个元素的顺序表中做插入、删除运算,平均时间复杂度为。

10.顺序表中逻辑上相邻的元素物理位置相邻,单链表中逻辑上相邻的元素的物理位置相邻。

A)必然、必然B)必然、不一定

C)不一定、必然D)不一定、不一定

11.相对于顺序存储而言,链式存储的优点是()。

A.随机存取B.节约空间

C.增、删操作方便D.节点间关系简单

12以下关于头结点的描述中,叙述错误的是

A)头结点是对链表首元结点的别称

B)若链表中附设头结点,则头指针一定不为空

C)头结点中不存储链表的数据元素,而是一些诸如表长之类的辅助信息

D)在单链表中附设头结点,插入或删除首元素时不必进行特殊处理

13.已知L是无表头结点的单链表,且P所指结点既不是首元结点,也不是尾元结点,则在P之后插入S所指结点,则执行()。

A)S->next=P->next;P->next=S;

B)P->next=S->next;S->next=P;

C)S->next=P;P->next=S;

D)P->next=S;S->next=P;

14.已知L是带表头结点的非空单链表,且P结点是S结点的直接前驱。

则删除S结点的语句序列为。

I.P->next=S;free(P)

II.P->next=P->next->next;free(S)

III.P->next=S->next;free(S)

IV.P=P->next;free(S)

A)I和II正确B)II和III正确

C)III和IV正确D)全部正确

15.已知L是带表头结点的单链表,则删除首元结点的语句序列是()。

A)L->next=L->next->next;free(L)

B)P=L;L=P->next;free(P)

C)P=L->next;L->next=P->next;free(P)

D)P=L;L=P->next;free(P)

16.已知L是一带有头结点的单链表的头指针,则该单链表为空的条件是。

17.已知P结点是某双向链表的中间结点,则删除P结点的语句序列是,,free(P);

18.设将整数1,2,3,4,5依次进栈,最后都出栈,出栈可以在任何时刻(只要栈不空)进行,则出栈序列不可能的是()。

A)32415B)45231C)32145D)45321

19.设有一个栈,元素的进栈次序为A,B,C,D,E,下列是不可能的出栈序列__________。

A)A,B,C,D,EB)B,C,D,E,A

C)E,A,B,C,DD)E,D,C,B,A

20.设有栈S和队列Q,其初始状态为空,元素a1,a2,a3,a4,a5,a6依次入栈,出栈的元素进入队列Q。

若元素出队列的顺序是a2,a4,a3,a6,a5,a1,则栈的容量至少是。

21.某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作,则abcde顺序入队,不可能得到的顺序是()。

A.bacdeB.dbaceC.dbcaeD.ecbad

22.设用一维数组A[n]存储一个栈,令A[n]为栈底,用整型变量T指示当前栈顶位置,A[T]为栈顶元素。

当从栈中弹出一个元素时,变量T的变化为()。

A)T=T+1B)T=T-1

C)T不变D)T=n-1

23.在具有m个单元的顺序存储的循环队列中,假定front和rear分别为队首指针和队尾指针,则判断队满的条件是()

A.front==(rear+1)%mB.front+1==rear

C.front==rearD.rear==m

24.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队首指针和队尾指针,则判断队空的条件是()

A)front==(rear+1)%nB)front+1==rear

C)front==rearD)front==0

25.循环队列用数组A[n]存放其数据元素。

设f指向其实际的队头,r指向其实际队尾的下一个位置,则计算队列中元素个数的公式为。

A)r-fB)(n+f-r)%nC)n+f-rD)(n+r-f)%n

26在串的运算中,StrLength(Concat(’aa’,’bb’))的返回值为

A)0B)8C)6D)4

27.设s1=”Ihave_”,s2=”adream”,则strcat(s1,s2)的值是,SubString(s1,4,3)的值是。

28.设s1=”Iamastudent”,s2=”astudent”,则Index(s1,s2)的值是。

29.设二维数组A[0…m-1][0…n-1]按行优先顺序存储在内存中,第一个元素的地址为p,每个元素占k个字节,则元素aij的地址为__________。

A.p+[i*n+j]*kB.p+[(i-1)*n+j-1]*k

C.p+[(j-1)*n+i-1]*kD.p+[j*n+i]*k

30.一个非空广义表的表头()。

A.一定是子表B.一定是原子

C.不能是子表D.可以是原子,也可以是子表

31.设广义表L=((a,b),c,()),则head(L)=,tail(L)=。

32.设循环队列的存储空间为Queue[30],初始状态为front=rear=0。

现经过一系列入队与出队操作后,front=16,rear=15,则循环队列中有个元素。

A)1B)29

C)30D)0

33.已知二维数组A[0..5,0..7]按行存放,其起始存储位置为1000,每个元素占用4个字节,则元素A[4,6]的第一个字节的地址为。

A)1148B)1168

C)1152D)1172

二、算法题

1.写出下列程序段的功能。

StatusA(LinkedListL){//L是无表头结点的单链表

If(L&&L->next){

Q=L;L=L->next;P=L;

While(P->next)P=P->next;

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

ReturnOK;}

2.简述以下算法的功能(栈的元素类型SElemType为int)。

(1)statusalgo1(StackS)

{

inti,n,A[255];

n=0;

while(!

StackEmpty(S)){n++;Pop(S,A[n]);}

for(i=1;i<=n;i++)Push(S,A[i]);

}

(2)statusalgo2(StackS,inte)

{

StackT;intd;

InitStack(T);

while(!

StackEmpty(S)){

Pop(S,d);

if(d!

=e)Push(T,d);

}

while(!

StackEmpty(T)){

Pop(T,d);

Push(S,d);

}

}

3.写出下列程序段的输出结果。

(1)voidmain(){

StackS;

charx,y;

InitStack(S);

x=’i’;y=’s’;

Push(S,x);Push(S,’r’);Push(S,y);

Pop(S,x);Push(S,’h’);Push(S,x);

Pop(S,x);Push(S,’c’);

while(!

StackEmpty(S)){Pop(S,y);printf(y);}

printf(x);

}

(2)voidmain(){

QueueQ;InitQueue(Q);

charx=’e’,y=’c’;

EnQueue(Q,‘a’);EnQueue(Q,‘d’);EnQueue(Q,y);

DeQueue(Q,x);EnQueue(Q,x);

DeQueue(Q,x);EnQueue(Q,‘r’);

while(!

QueueEmpty(Q)){DeQueue(Q,y);printf(y);}

printf(x);

}

4.已知L是带头结点的单链表。

试写一算法求该单链表的长度。

5.已知L是带头结点的单链表。

试写一算法在该链表上查找值为x的元素。

6.将带头结点的L中的第i个数据元素删除。

7.在带头结点的L中第i个元素之前插入数据元素e。

8.正位序输入n个元素的值,建立带头结点的单链表L。

9.已知线性表中的元素以值递增有序排列,并以带有头结点的单链表作存储结构。

试写一算法删除表中所有值大于mink且小于maxk的元素,同时释放被删除的结点空间。

10.LA和LB是两个数据元素按升序排列的单链表,将LA和LB合并为有序单链表LC。

写出这两个有序链表合并的算法。

第六章习题

一、单选或填空题

1.已知完全二叉树的第7层上有10个叶子结点,则整个二叉树的结点数最多是

A)73B)63C)235D)245

2.300个结点的完全二叉树的叶结点有个。

3.一个具有1025个结点的二叉树的高h为____。

A)11B)10C)11至1025之间D)10至1024之间

4.将一棵有100个节点的完全二叉树从上到下,从左到右依次对节点进行编号,根节点的编号为1,则编号为49的节点的右孩子编号为()。

A.99B.98C.50D.48

5.把如右图所示的树转换成二叉树时,C是()

A.A的左子女B.A的右子女

C.B的左子女D.B的右子女

6.设森林F中有3棵树,其结点个数分别是n1、n2和n3,则与森林对应的二叉树根结点的右子树上的结点个数是。

A)n1-1B)n1+n2C)0D)n2+n3

7.在一颗度为3的树T中,若有10个度为3的结点,5个度为2的结点,则树T的叶结点有个。

A)15B)26

C)25D)40

8.一棵二叉树中序遍历结果为DCBAEFG,后序遍历结果为DCBGFEA。

则此二叉树先序遍历的结果应为

A)ABCDEFGB)ABECFDGC)AEBFCGDD)不能确定

9.将一棵树t转换为孩子—兄弟链表表示的二叉树h,则t的后根遍历是h的

A)先序遍历B)中序遍历C)后序遍历C)层序遍历

10.现有一段电文共100个字符,其中A出现50次,B出现20次,C出现5次,D出现10次,E出现15次。

现对这5个字符进行哈夫曼编码,则其平均码长为。

11.现有一段电文共100个字符,其中A出现35次,B出现27次,C出现8次,D出现20次,E出现10。

现对这5个字符进行哈夫曼编码(注:

建立哈夫曼树时权值小的为左子树,权值大的为右子树),则字符E的编码为。

A)011B)001C)1101D)1111

 

二、解答题

1.某二叉树的中序遍历结果为DEFABCG;后序遍历结果为FEDCBAG。

(1)画出此二叉树,并给出其先序遍历的结果。

(2)画出与这棵二叉树对应的树(森林)。

2.已知一个二叉树的先序遍历序列为:

ABDGIECFH;中序遍历序列为:

DIGBEAFHC。

(1)画出该二叉树

(2)画出下图所示森林对应的二叉树。

LA

 

3.某二叉树层序序列为abcdefghij,中序序列为bgdhjaecif。

(1)画出该二叉树;

(2)画出该二叉树的后序后继线索树;

(3)画出该二叉树对应的树或森林。

4.已知某通讯用电文仅有A、B、C、D、E、F六个字符构成,其出现的频率分别为26,8,17,11,28,10,请首先建立哈夫曼树,然后给出六个字符的哈夫曼编码(注:

建立哈夫曼树时权值小的为左子树,权值大的为右子树)。

5.假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。

(1)试为这8个字母设计赫夫曼编码。

(2)试设计另一种由二进制表示的等长编码方案。

(3)对于上述实例,比较两种方案的优缺点。

三、算法题

1.以二叉链表作为二叉树的存储结构,编写以下算法:

(1)求先序序列为k的结点的值

(2)求二叉树中叶子结点的数目

(3)交换所有结点的左右子树

(4)求二叉树的深度

第七章习题

一.单选或填空题

1.若某有向图的邻接矩阵A只有0和1两种元素,其中aij=1表示有向图中存在弧,则编号为i顶点的入度可用表示。

A)邻接矩阵中第i行元素之和B)邻接矩阵中第i列元素之和

C)邻接矩阵中对角线元素之和D)以上均不正确

2.使用邻接表作为某无向图的存储结构,若无向完全图中有n个顶点,则邻接表中必存在个表结点。

A)n2B)2nC)n(n-1)D)2n-1

3.一个含有n个顶点和e条边的无向图,在其邻接矩阵存储结构中共有()零元素。

A.eB.2eC.n2-eD.n2-2e

4.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的()倍。

A.1/2B.1C.2D.4

5.下列关于图的叙述中,正确的是()

Ⅰ、回路是简单路径

Ⅱ、存储稀疏图,用邻接矩阵比邻接表更省空间

Ⅲ、若有向图中存在拓扑序列,则该图不存在回路

A.仅ⅡB.仅Ⅰ、ⅡC.仅ⅢD.仅Ⅰ、Ⅲ

6.若一个图的边集为{(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)},则从顶点A开始对该图进行广度优先搜索,得到的顶点序列可能为__________。

A.A,B,C,D,E,FB.A,B,C,F,D,E

C.A,B,D,C,E,FD.A,C,B,F,D,E

7.在有n个结点的无向图中,其边数最多为。

8.对于具有n个结点的连通图,它的最小生成树中有条边。

A)n2B)n-1C)n(n-1)D)n(n-1)/2

9.关键路径是AOE网中

A)从源点到汇点的最长路径B)从源点到汇点的最短路径

C)最长回路D)最短回路

10.以下关于图的描述中,正确的是

A)n个顶点的无向完全图有

条边。

B)对任何用顶点表示活动的网络(AOV网)进行拓扑排序的结果是唯一的。

C)若图G的邻接矩阵是对称的,则G一定是无向图

d

D)有向图的邻接矩阵一定是非对称矩阵

11.对下图进行拓扑排序,可以得到不同的拓扑序列的个数是()

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

12.下图为用边表示活动的AOE-网。

则V8的最早发生时间是。

二、解答题

1.已知图的邻接矩阵如下所示。

试分别画出自顶点1出发进行遍历所得的深度优先生成树和广度优先生成树。

 

2.已知某无向图的邻接表存储结构如下图所示,求解下列问题:

(1)画出它的无向图;

(2)画出它的的邻接矩阵存储结构;

(3)从顶点A出发,画出其广度优先生成树。

0A14

1B025

2C134

3D25

4E025

5F134

3.已知无向带权图G的邻接矩阵如下所示。

 

(1)画出该无向带权图G;

(2)从顶点a出发,求其深度优先生成树;

(3)从顶点a出发,根据普里姆算法构造最小生成树,过程在下面的图

(1)至(5)中画出。

(4)给出邻接表存储结构;

4.对于如下图所示的带权有向图,求解关键路径,计算各事件(顶点)的最早发生时间和最迟发生时间,各活动(弧)的最早开始时间和最迟开始时间。

请填写在答题纸的表格中。

k

表1计算各事件(顶点)的最早发生时间和最迟发生时间,请填写在表1的空白处。

顶点

a

b

c

d

e

f

g

h

k

ve

0

6

4

5

7

15

14

18

vl

0

8

10

16

14

18

表2计算各活动(弧)的最早开始时间和最迟开始时间,请填写在表2的空白处。

ab

ac

ad

be

ce

df

eg

eh

fh

gk

hk

e

0

0

0

6

4

5

7

15

14

l

3

8

10

16

14

5.对于右图,求解下列问题:

(1)写出该图的邻接矩阵;

(2)写出全部拓扑排序序列;

(3)从顶点V1出发,给出深度优先遍历生成树;

(4)按照迪杰斯特拉算法,求V1结点到各点的最短路径,填写表1的空白处。

终点

从V1到各终点的距离和最短路径的求解过程

i=1

i=2

i=3

i=4

i=5

i=6

i=7

V2

2

------

--------

--------

--------

--------

--------

V3

3

3

--------

--------

--------

--------

--------

V4

--------

--------

--------

--------

V5

13

13

--------

--------

V6

--------

--------

--------

V7

--------

V8

16

16

16

vj

v2

v3

第九章习题

一.单选或填空题

1.已知一个长度为11的有序表,使用折半查找的方法,查找第8个元素时所需进行的关键字比较次数为。

2.已知一个长度为16的有序表,使用折半查找的方法,查找一个不存在的元素,则所需进行的关键字比较次数最多是。

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

3.在二叉排序树中,关键字值最大的结点

A)左指针一定为空B)右指针一定为空

C)左右指针均为空D)左右指针均不为空

4.给定关键字集合(51,24,62,43,75,18,55),从一棵空的二叉排序树开始,按表中元素的次序构造一棵二叉排序树,关键字62所在结点的左孩子结点中保存的关键字是()

A.18B.24C.55D.75

5.AVL树是一种平衡的二叉排序树,树中任一结点的

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

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

6.以下关于查找方法的描述中,错误的是

A)平衡二叉树一定也是二叉排序树。

B)有序表的折半查找判定树是二叉排序树。

C)中序遍历一棵二叉排序树,可以得到其数据元素的升序排列。

D)后序遍历一棵二叉排序树,可以得到其数据元素的降序排列。

7.下列二叉排序树中,满足平衡二叉树定义的是()

8.在下列所示的平衡二叉树中插入关键字48后得到一棵新平衡二叉树,在新平衡二叉树中,关键字37所在结点的左、右子结点中保存的关键字分别是()

A.13,48B.24,48C.24,53D.24,90

9.设哈希表长为14,哈希函数是H(key)=key%11,表中已有数据的关键字为15,38,61,84共四个,现要将关键字为49的元素加到表中,用二次探测法解决冲突,则放入的位置是()。

A.8B.3C.5D.9

二、解答题

1.画出对长度为12的有序表进行折半查找的判定树,并求其等概率查找成功时的平均查找长度。

2.已知如下所示长度为12的表:

(Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec)

①试按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成之后的二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。

②若对表中元素先进行排序构成有序表,求在等概率的情况下对此有序表进行折半查找时查找成功的平均查找长度。

③按表中元素顺序构造一棵平衡二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。

3.设记录关键字集合key={33,20,53,55,23,38,40,65},选取哈希函数为H(x)=keymod11;解决冲突的方法为“线性探测法”。

(1)请按上述条件将key中各值依次填入下表中:

(2)求该哈希表查找成功和查找不成功情况下的平均查找长度。

4.设记录关键字集合key={32,13,49,55,22,39,20},选取哈希函数为H(x)=keymod7;解决冲突的方法为“链地址法”。

(1)画出所构造的哈希表;

(2)求该哈希表查找成功和查找不成功情况下的平均查找长度。

5.设哈希表的地址范围为0~17,哈希函数为:

H(key)=key%16。

用线性探测法处理冲突,输入关键字序列:

(10,24,32,17,31,30,46,47,40,63,49),构造哈希表,试回答下列问题:

①画出哈希表的示意图;

②若查找关键字63,需要依次与哪些关键字进行比较?

③若查找关键字60,需要依次与哪些关键字比较?

④假定每个关键字的查找概率相等,求查找成功时的平均查找长度。

6.选取哈希函

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

当前位置:首页 > 高中教育 > 语文

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

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