数据结构本期末综合理解练习度.docx

上传人:b****6 文档编号:9145256 上传时间:2023-02-03 格式:DOCX 页数:40 大小:46.71KB
下载 相关 举报
数据结构本期末综合理解练习度.docx_第1页
第1页 / 共40页
数据结构本期末综合理解练习度.docx_第2页
第2页 / 共40页
数据结构本期末综合理解练习度.docx_第3页
第3页 / 共40页
数据结构本期末综合理解练习度.docx_第4页
第4页 / 共40页
数据结构本期末综合理解练习度.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

数据结构本期末综合理解练习度.docx

《数据结构本期末综合理解练习度.docx》由会员分享,可在线阅读,更多相关《数据结构本期末综合理解练习度.docx(40页珍藏版)》请在冰豆网上搜索。

数据结构本期末综合理解练习度.docx

数据结构本期末综合理解练习度

数据结构(本)期末综合练习

2015年11月

综合练习一

一、单项选择题

1.对稀疏矩阵进行压缩存储,可采用三元组表,一个10行8列的稀疏矩阵A共有73

个零元素,其相应的三元组表共有(C)个元素。

A.8B.80C.7D.10

2.对稀疏矩阵进行压缩存储,可采用三元组表,一个10行8列的稀疏矩阵A,其相应的

三元组表共有6个元素,矩阵A共有(C)个零元素。

A.8B.72C.74D.10

3.字符串(A)是“abcd321ABCD”的子串。

A.“21AB”B.“abcD”C.“aBCD”D.“321a”

4.程序段

chara[]=“abdcacdef”;

char*p=a;intn=0;

while(*p!

=‘\0’){n++;p++;}结果中,n的值是(D)。

A.6B.8C.7D.9

5.栈和队列的共同特点是(A)。

A.都是操作受限的线性结构B.元素都可以随机进出

C.都是先进后出D.都是先进先出

6.10,6,2,1按顺序依次进栈,该队列的可能输出序列是(A)。

(进栈出栈可以交替进行)。

A.6,10,1,2B.2,10,6,1C.6,1,10,1D.1,6,10,2

7.在一个链队中,假设f和r分别为队头和队尾指针,p指向一个新结点,要为结点p

所指结点赋值x,并入队的运算为p->data=x;p->next=NULL;(B)。

A.f->next=p;f=p;B.r->next=p;r=p;

C.r=p;p->next=r;D.p->next=f;f=p;

8.对一个栈顶指针为top的链栈进行出栈操作,用变量e保存栈顶元素的值,则执行

(B)。

A.e=top->next;top->data=e;

B.e=top->data;top=top->next;

C.top=top->next;e=top->data;

D.top=top->next;e=data;

9.数据结构中,与所使用的计算机无关的是数据的(A)结构。

A.逻辑B.存储C.逻辑与存储D.物理

10.算法的时间复杂度与(A)有关。

A.算法本身B.所使用的计算机

C.算法的程序设计D.数据结构

11.顺序表所具备的特点之一是(A)。

A.可以随机访问任一结点B.不需要占用连续的存储空间

C.插入元素的操作不需要移动元素D.删除元素的操作不需要移动元素

12.在一个单向链表中,在p所指结点之后插入一个s所指的结点时,可执行

s->next=p->next;和(D)。

A.p=s;B.p->next=s->next;

C.p=s->nextD.p->next=s;

13.数据元素是数据的基本单位,它(C)。

A.只能有一个数据项组成

B.至少有二个数据项组成

C.可以是一个数据项也可以由若干个数据项组成

D.至少有一个数据项为指针类型

14.一种逻辑结构在存储时(C)。

A.只要存储数据元素间的关系B.只能采用一种存储结构

C.可采用不同的存储结构D.只要存储数据元素的值

15.设有头指针为head的非空的单向链表,指针p指向其尾结点,要使该单向链表成为单向循环链表,则可利用下述语句(C)。

A.p=head;B.p=NULL;C.p->next=head;D.head=p;

16.单向链表所具备的特点是(C)。

A.可以随机访问任一结点B.占用连续的存储空间

C.插入删除不需要移动元素D.可以通过某结点的指针域访问其前驱结点

17.在线性表的顺序结构中,以下说法正确的是(C)。

A.逻辑上相邻的元素在物理位置上不一定相邻

B.数据元素是不能随机访问的

C.逻辑上相邻的元素在物理位置上也相邻

D.进行数据元素的插入、删除效率较高

18.数据结构在计算机内存中的表示是指(B)。

A.数据元素之间的关系B.数据的存储结构

C.数据元素的类型D.数据的逻辑结构

19.对链表,以下叙述中正确的是(A)。

A.不能随机访问任一结点B.结点占用的存储空间是连续的

C.插入删除元素的操作一定要要移动结点D.可以通过下标对链表进行直接访问

20.下面关于线性表的叙述中,错误的是(B)。

A.线性表采用顺序存储,必须占用一片连续的存储空间。

B.线性表采用顺序存储,进行插入和删除操作,不需要进行数据元素间的移动。

C.线性表采用链式存储,不必占用连续的存储空间。

D.线性表采用链式存储,进行插入删除操作,不需要移动元素

21.设有一个长度为35的顺序表,要在第5个元素之前插入1个元素(也就是插入元素

作为新表的第5个元素),则移动元素个数为(B)。

A.30B.31C.5D.6

22.设有一个长度为18的顺序表,要在第5个元素之前插入1个元素(也就是插入元素作为新表的第5个元素),则移动元素个数为(B)。

A.15B.14C.5D.6

23.设有一个长度为40的顺序表,要删除第10个元素(下标从1开始)需移动元素的个数为(C)。

A.11B.10C.30D.31

24.设有一个长度为25的顺序表,要删除第10个元素(下标从1开始)需移动元素的个数为(C)。

A.10B.17C.15D.16

25.设有一个25阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a7,5在一维数组B中的下标是(C)。

A.25B.24C.26D.27

26.设有一个18阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a10,8在一维数组B中的下标是(D)。

A.62,B.63C.51D.53

27.线性表在存储后,如果相关操作中有要求:

利用已知的指向某结点的指针或序号,访问

该结点的前驱结点,则采用(A)的存储方式是不可行的。

A.单向链表B.双向链表C.单向循环链表D.顺序表

28.在一个尾指针为rear的不带头结点的单循环链表中,插入一个s所指的结点,并作为第一个结点,可执行snext=rearnext;和(D)。

A.rearnext=snext;B.rear=snext;

C.rear=s;D.rearnext=s;

29.在一棵二叉树中,若编号为i的结点存在左孩子,i结点的左孩子的顺序编号为(B)。

A.i/2.0B.2*iC.2*i+1D.i+2

30.在一棵二叉树中,若编号为15的结点是其双亲结点的右孩子,则双亲结点的顺序编号为(D)。

A.30B.8C.31D.7

二、填空题

1.广义表((b,a,c),c,d,f,e,((i,j),k))的长度是___6_____。

2.结构中的元素之间存在一对多的关系是___树形_____结构。

3.数据结构中,数据元素之间的抽象关系称为____逻辑____结构。

4.结构中的元素之间存在多对多的关系是___图状_____结构。

5.栈的操作特点是后进___先出_____。

6.循环队列的最大存储空间为MaxSize,若队头指针front,队尾指针rear,采用少用一个

存储空间以有效地判断栈空或栈满,队空的判定条件为___rear==front为真_____。

7.广义表((b,a,c),c,d,f,e,((i,j),k))的表头是____(b,a,c)____。

8.广义表((b,a,c),c,d,f,e,((i,j),k))的长度是____6____。

9.设有一个长度为18的顺序表,第8号元素到第18号元素依次存放的值为8,9,…,18.

某人想要删除第8号元素,程序中他的做法是用语句for(i=18;i<=9;i--)a[i-1]=a[i];

即从第18号元素开始,直到第9号元素,每个元素依次向前(左)移动1个位置.事实上这

样做是错误的.其结果新表中第9号元素的值为___18_____。

10.要求在n个数据元素中找值最大的元素,其基本操作为元素间的比较。

算法的时间复杂

度为____O(n)___。

11.一棵二叉树,有1个2度结点,,2个1度结点,则该树共有_5______个结点。

12.一棵有8个叶结点的二叉树,其1度结点的个数为3,则该树共有___18____个结点。

13.设有一棵深度为5的完全二叉树,该树共有21个结点,第5层上有6个结点。

(根所在结点为第1层)

14.对于一棵具有n个结点的二叉树,其相应的链式存储结构中共有__n+1______个指针域为空。

15.中序遍历____二叉排序树____树可得到一个有序序列。

16.对一组记录(5,8,9,2,12,7,56,44,39)进行直接插入排序(由小到大排序),当把第6个记录7插入有序表,为寻找插入位置需比较__4______次。

17.序列12,10,13,11,16,14,采用冒泡排序算法,经一趟冒泡后,序列的结果是____10,12,11,13,14,16____。

(按升序排序)

18.设有一棵深度为6的完全二叉树,第6层上有3个结点,该树共有__34_____个结点。

(根所在结点为第1层)

19.对16个元素的序列用冒泡排序法进行排序,共需要进行___15_____趟冒泡。

20.一棵有16个叶结点的哈夫曼树,则该树共有___31____个结点。

21.一棵有16个叶结点的哈夫曼树,则该树共有__15_____个非叶结点。

22.20个元素进行冒泡法排序,通常第6趟冒泡要进行___14___次元素间的比较。

23.在对一组记录(40,24,82,9,1,78,46,31,69)进行直接插入排序(由小到大排

序),当把第7个记录46插入到有序表时,为寻找插入位置需比较____3____次。

24.对稀疏矩阵进行压缩存储,可采用三元组表,一个6行7列的稀疏矩阵A共有38个零

元素,其相应的三元组表共有____4___个元素。

三、综合题

1.

设有序表为(5,8,14,15,33,51,61,73,81,82,93),元素的序号依次为

1,2,3,……,11.

(1)画出对上述查找表进行折半查找所对应的判定树(树中结点可用序号表示)

(2)说明成功查找到元素33需要经过多少次比较?

(3)在等概率条件下,给出成功查找的平均查找长度

(1)图4

51

1481

5156182

8337393

 

(2)4次

(3)(1+2*2+3*4+4*4)/11=33/11=3

 

2.

设数据集合a={1,5,8,3,10,7,13,9}

(1)依次取a中各数据,构造一棵二叉排序树。

(2)对该二叉树进行查找,成功查找到7要进行多少次元素间的比较?

(3)给出对该二叉树中序遍历的序列。

(1)图5

(2)4次

(3)中序遍历1,3,5,7,8,9,10,13

3.

d

c

e

a

b

f

he

图1

(1)如图1所示,若从顶点a出发,首先经过c按图的深度优先搜索法进行遍历,给出可能得到的一种顶点序列。

 

(1)acdbfeh

(2)152364或152634或156234

(2)设有向图如图2所示下,写出首先删除顶点1的1种拓扑序列

1

2

3

4

5434

65

图2

 

4.

设有序表为(30,48,58,70,78,79,90),元素的序号依次为1,2,3,……,7.

(1)画出对上述查找表进行折半查找所对应的判定树(树中结点用序号表示)

(2)给出有序表中经3次比较成功查找到的所有元素

(3)说明不成功查找元素59需要经过多少次比较?

 

(1)图6

70

 

4879

30587890

(2)30587890

(3)3次

5.

(1)设数据集合a={7,4,9,8,6,5,3},依次取a中各数据,构造一棵二叉排序树。

(2)对该二叉树进行查找,成功查找到5要进行多少次元素间的比较?

(3)给出对上述二叉排序树进行中序遍历的序列

(1)图7

 

(2)4

(3)3,4,,5,6,7,8,9

6.

(1)如图3所示,若从顶点a出发,首先经过c按广度优先搜索法进行遍历,给出可能得

到的一种顶点序列。

(2)同图3所示,若从顶点h出发,按深度优先搜索法进行遍历,给出可能得到的2种顶点

序列。

a阿dec

f

hec

dec

cdec

eec

图3

 

(3)

一组记录的关键字序列为(75,63,95,80,53,45,38,20),利用堆排序的方法建立小根堆(堆顶元素是最小元素),给出按筛选法建立的的初始堆。

(1)acefdh

(2)hdeacfhdfcae

(3)

20,53,38,63,75,45,95,80

四、程序填空题

1.以下函数在a[0]到a[n-1]中,用折半查找算法查找关键字等于k的记录,查找成功返回该记录的下标,失败时返回-1,完成程序中的空格

typedefstruct

{intkey;

……

}NODE;

intBinary_Search(NODEa[],intn,intk)

{

intlow,mid,high;

low=0;

high=n-1;

while(___

(1)_____)

{

mid=(low+high)/2;

if(a[mid].key==k)

return__

(2)______;

elseif(___(3)_____)

low=mid+1;

else__(4)______;

}

___(5)_____;

}

(1)low<=high

(2)mid

(3)a[mid].key

(4)high=mid-1

(5)return-1

2.以下函数为直接选择排序算法,对a[1],a[2],…a[n]中的记录进行直接选择排序

,完成程序中的空格

typedefstruct

{intkey;

……

}NODE;

voidselsort(NODEa[],intn)

{

inti,j,k;

NODEtemp;

for(i=1;i<=___

(1)___;i++)

{k=i;

for(j=i+1;___

(2)__;j++)

if(a[j].key

if(i!

=k)

{temp=a[i];

___(4)____;

___(5)____;

}

}

}

(1)n-1

(2)j<=n

(3)k=j

(4)a[i]=a[k]

(5)a[k]=temp

3.以下函数为链栈的进栈操作,x是要进栈的结点的数据域,top为栈顶指针

structnode

{ElemTypedata;

structnode*next;

};

structnode*top;

voidPush(ElemTypex)

{structnode*p;

p=(structnode*)malloc(___

(1)___);

p->data=x;

__

(2)____;

___(3)___;

}

(1)sizeof(structnode)

(2)pnext=top

(3)top=p

4.以下函数为链队列的入队操作,x为要入队的结点的数据域的值,front、

rear分别是链队列的队头、队尾指针

structnode

{ElemTypedata;

structnode*next;

};

structnode*front,*rear;

voidInQueue(ElemTypex)

{

structnode*p;

p=(structnode*)___

(1)_____;

p->data=x;

p->next=NULL;

___

(2)_____;;

rear=___(3)_____;

}

(1)malloc(sizeof(structnode))

(2)rear->next=p;

(3)rear=p;

综合练习二

一、单项选择题

1.对稀疏矩阵进行压缩存储,可采用三元组表,一个有10行的稀疏矩阵A共有97个零元素,其相应的三元组表共有3个元素。

该矩阵A有(D)列。

A.8B.9

C.7D.10

2.单向链表所具备的特点是(C)。

A.可以随机访问任一结点B.占用连续的存储空间

C.插入删除不需要移动元素D.可以通过某结点的指针域访问其前驱结点

3.子串“acd”在主串“abdcacdefac”中的位置是(B)。

A.3B.5

C.7D.1

4.设有一个长度为18的顺序表,要在第6个元素之前插入一个元素(也就是插入元素作为新表的第6个元素),则移动元素个数为(C)。

A.12B.5C.13D.6

5.序列12,16,8,4按顺序依次进栈,按该栈的可能输出序列依次入队列,该队列的不可能输出序列是(B)。

(进栈、出栈可以交替进行)。

A.16,12,8,4B.4,8,12,16

C.8,4,16,12D.16,12,4,8

6.栈和队列的共同特点是(A)。

A.都是线性结构B.元素都可以随机进出

C.都是先进后出D.都是先进先出

7.在一个不带头结点的链队中,假设f和r分别为队头和队尾指针,对该队列进行出队

操作,并把结点的值保存在变量e中,其运算为(C)。

A.e=f->data;r=r->next;B.e=f->data;r->next=r;

C.e=f->data;f=f->next;D.e=f->data;f->next=f;

8.元素1,3,5,7按顺序依次入队列,按该队列的出队序列进栈,该栈的可能输出序列是(D)(进栈出栈可以交替进行)。

A.7,5,1,3B.7,3,1,5

C.5,1,3,7D.7,5,3,1

9.数据的逻辑结构在计算机内存中的表示是(B)。

A.给相关变量分配存储单元

B.数据的存储结构

C.数据的逻辑结构

D.算法的具体体现

10.在一个不带头结点的链队中,假设f和r分别为队头和队尾指针,则对该队列进行出队操作中并把结点的值保存在变量e中,其运算为e=fdata;和(C)。

A.r=rnext;B.rnext=r;

C.f=fnext;D.fnext=f

11.以下说法正确的是(B)。

A.线性表的链式存储结构必须占用连续的存储空间

B.一种逻辑结构可以有不同的存储结构

C.一种逻辑结构只能有唯一的存储结构

D.线性表的顺序存储结构不必占用连续的存储空间

12.设有一个对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),B数组共有45个元素,则该矩阵是(D)阶的对称矩阵。

A.15B.11C.10D.9

13.在一个单链表中要删除p所指结点的后继结点,可执行q=p->next;和(A)。

A.p->next=q->next;B.p=q->next;

C.p->next=q;D.p->next=q;

14.下列是C语言中〝abcd321ABCD〞的子串的选项是(A)。

A.〝21ABC〞B.〝abcABCD〞

C.abcDD.〝321a〞

15.在数据结构和算法中,与所使用的计算机有关的是(B)。

A.数据元数间的抽象关系B.数据的存储结构

C.算法的时间复杂度D.数据的逻辑结构

16.字符串a1=〝BEIJING〞,a2=〝BEF〞,a3=〝BEFANG〞,a4=“BEFI〞最小的是(B).

A.a1B.a2

C.a3D.a4

17.以下表中可以随机访问的是(D)。

A.单向链表B.双向链表

C.单向循环链表D.顺序表

18.一棵有20个结点采用链式存储的二叉树中,共有(A)个指针域为空。

A.21B.20C.19D.18

19.头指针为head的不带头结点的单向链表为空的判定条件是逻辑表达式(A)为真。

A.head==NULLB.head->next==NULL

C.head->next=NULLD.head->next!

=NULL

20.设一棵哈夫曼树共有18个叶结点,则该树有(C)个非叶结点。

A.18B.19C.17D.16

21.设有一个长度为32的顺序表,要在第5个元素之前插入1个元素(也就是插入元素

作为新表的第5个元素),需移动元素个数为(B)。

A.25B.28C.5D.6

22.如图1所示的一个图,若从顶点g出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为(D)。

A.gabecdfB.gacfebdC.gaebcfdD.gaedfcb

b

d

f

e

C

a

g

图1

23.设有一个长度为33的顺序表,要删除第10个元素(下标从1开始)需移动元素的个数

为(C)。

A.11B.10C.23D.14

24.线性表以(B)方式存储,能进行折半查找。

A.关键字有序的B.关键字有序的顺序C.链接D.顺序

25.设有一个28阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序

存储到一维数组B中(数组下标从1开始),则数组中第26号元素对应于矩阵中的元素是(A)。

A.a7,5,B.a7,6C.a6,5D.a7,4

26.有一个长度为8的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均

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

当前位置:首页 > 高等教育 > 历史学

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

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