昆明理工大学数据结构总复习题.docx

上传人:b****5 文档编号:7093707 上传时间:2023-01-17 格式:DOCX 页数:11 大小:25.09KB
下载 相关 举报
昆明理工大学数据结构总复习题.docx_第1页
第1页 / 共11页
昆明理工大学数据结构总复习题.docx_第2页
第2页 / 共11页
昆明理工大学数据结构总复习题.docx_第3页
第3页 / 共11页
昆明理工大学数据结构总复习题.docx_第4页
第4页 / 共11页
昆明理工大学数据结构总复习题.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

昆明理工大学数据结构总复习题.docx

《昆明理工大学数据结构总复习题.docx》由会员分享,可在线阅读,更多相关《昆明理工大学数据结构总复习题.docx(11页珍藏版)》请在冰豆网上搜索。

昆明理工大学数据结构总复习题.docx

昆明理工大学数据结构总复习题

一、单选题

∙数据结构研究()。

A.数据的逻辑结构、存储结构及操作的实现B.数据的物理结构

C.数据的逻辑结构与存储结构D.数据的逻辑结构。

∙数据的存储结构包括顺序;链式;散列和()4种基本类型。

A.VectorB.IndexC.SetsD.Array

∙若某线性表最常用的操作是取第i个元素,则采用()存储方式最节省运算时间。

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

∙一个单链表中,已知*q结点是*p结点的前趋结点,若在*q和*p之间插入*s结点,则必须执行()操作。

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

C.p->next=s->next;s->next=pD.q->next=s;s->next=p;

∙在一个具有n个结点的有序单链表中,若插入一个新结点,单链表仍然有序,则算法的时间复杂度为()。

A.O(n)B.O

(1)C.O(n2)D.O(nlog2n)

∙队列与一般线性表的区别在于()。

A.数据元素的类型不同B.插入或删除操作的位置受限制

C.数据元素的个数不同D.逻辑结构不同

∙设进栈的顺序为abcd,则不可能得到的出栈序列是()。

A.abcdB.dcbaC.dabcD.acdb

∙用链接方式存储的队列,在进行插入运算时().

A.仅修改头指针 B.头、尾指针都要修改

C.仅修改尾指针D.头、尾指针可能都要修改

∙循环队列的队满条件为(在牺牲一个存储空间的情况下)()

A.rear%maxsize==(front+1)%maxsize;B.(rear+1)%maxsize==front+1

C.(rear+1)%maxsize==frontD.rear==front

∙下面关于串的叙述中,哪一个是不正确的()

A.串是字符的有限序列B.模式匹配是串的一种重要运算

C.空串是由空格构成的串D.串既可以采用顺序存储,也可以采用链式存储

∙稀疏矩阵一般的压缩存储方法有()两种。

A.三元组表和十字链表B.三元组表和哈希表

C.二维数组和三维数组D.哈希表和十字链表

∙中序遍历一颗二叉排序树所得到的结点访问序列是结点值的()序列。

A.递增或递减B.递增C.递减D.无序

∙在树中,若结点A有四个兄弟,而且B是A的双亲,则B的度为()。

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

∙若一棵二叉树具有10个度为2的结点,则该二叉树的度为0的结点个数是()

A.9B.11C.12D、不确定

∙n个顶点的连通图至少有()条边

A.0B.nC.n+1D.n-1

∙若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个()。

A.上三角矩阵B.稀疏矩阵C.对角矩阵D.对称矩阵

∙AOV网是一种()。

A.有向图B.无向图C.有向无环图D.无向无环图

∙采用折半查找方法进行查找,数据文件应为()。

A.有序表和链式存储结构B.有序表和顺序存储结构

C.随机表和顺序存储结构D.随机表和链式存储结构

∙在顺序表{2、5、7、10、14、15、18}中,用二分法查找关键码12需做()次关键码比较。

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

∙下面的排序算法中,时间复杂度不是O(n2)的是()。

A.直接插入排序B.冒泡排序C.二路归并排序D.直接选择排序

=============================================

∙算法指的是()

A.计算机程序B.解决问题的计算方法C.排序算法D.解决问题的有限运算序列

∙下列数据结构中,()是线性结构。

A.树B.队列C.图D.A和B

∙下面程序的时间复杂为()

for(i=1,s=0;i<=n;i++)

{t=1;

for(j=1;j<=i;j++)t=t*j;

s=s+t;

}

A.O(n)B.O(n2)C.O(n3)D.O(n4)

∙用链表表示线性表的优点是()。

A.便于随机存取B.花费的存储空间比顺序表少

C.便于插入与删除D.数据元素的物理顺序与逻辑顺序相同

∙从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较()个结点。

A.nB.n/2C.(n-1)/2D.(n+1)/2

∙在一个单链表中,已知q所指节点是p所指节点的前驱节点,若在q和p之间插入s节点,则执行()。

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

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

∙栈的插入和删除操作在()进行。

A栈顶B栈底C任意位置D指定位置

∙设栈的输入序列是1234,则()是不可能的出栈序列。

A.1243B.2134C.1432D.4312

∙设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为()

A.front=front+1B.front=(front+1)%(m-1)

C.front=(front-1)%mD.front=(front+1)%m

∙如下陈述中正确的是()

A.串是一种特殊的线性表B.串的长度必须大于零

C.串中元素只能是字母D.空串就是空白串

∙树型结构中元素间存在()的关系。

A.一对一B.多对多C.一对多D.随机

∙一棵深度为5的满二叉树中,结点的总数为()。

A.31B.32C.33D.16

∙一棵二叉树有67个结点,这些结点的度或者是0,或者是2。

这棵二叉树中度为2的结点有()个。

A.33B.34C.32D.30

∙下面关于图的存储的叙述中正确的是()

A.邻接矩阵占用的存储空间只与图中结点个数有关,而与边数无关;

B.邻接矩阵占用的存储空间只与图中边数有关,而与结点个数无关;

C.邻接表占用的存储空间只与图中结点个数有关,而与边数无关;

D.邻接表占用的存储空间只与图中边数有关,而与结点个数无关。

∙n个顶点的连通图至少有()条边。

A.n-1B.nC.n+1D.0

∙AOV网是一种()。

A.有向图B.无向图C.无向无环图D.有向无环图

∙若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个()。

A.上三角矩阵B.稀疏矩阵C.对角矩阵D.对称矩阵

∙对二叉排序树进行()遍历,可以得到该二叉树所有结点构成的有序序列

A.前序B.中序C.后序D.按层序

∙有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},如果采用二分查找法,查值为82的结点时,()次比较后查找成功。

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

∙假定有K个关键字互为同义词,若用线性探测法把这K个关键字存入散列表中,至少要进行()次探测。

A.K-1次B.K(K-1)/2次C.K+1次D.K(K+1)/2次

=====================================================

∙对一个算法的评价,不包括如下()方面的内容。

A.健壮性和可读性B.并行性C.正确性D.时空复杂度

∙ 对线性表,在下列哪种情况下应当采用链表表示?

()

A.经常需要随机地存取元素B.经常需要进行插入和删除操作

C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变

∙在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行()。

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

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

∙栈和队列的共同特点是()。

A.只允许在端点处插入和删除元素B.都是先进后出

C.都是先进先出D.没有共同点

∙一个栈的输入序列为123,则下列序列中不可能是栈的输出序列的是()

A.231B.321

C.312D.123

∙设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为()

A.front=front+1B.front=(front+1)%(m-1)

C.front=(front-1)%mD.front=(front+1)%m

∙用链接方式存储的队列,在进行插入运算时().

A.仅修改头指针 B.头、尾指针都要修改

C.仅修改尾指针D.头、尾指针可能都要修改

∙设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?

脚注(10)表示用10进制表示。

A.688B.678C.692D.696

∙树最适合用来表示()。

A.有序数据元素B.无序数据元素

C.元素之间具有分支层次关系的数据D.元素之间无联系的数据

∙二叉树的第k层的结点数最多为().

A.2k-1B.2K+1C.2K-1   D.2k+1

∙若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为()

A.1,2,3B.9,5,2,3

C.9,5,3D.9,4,2,3

∙对n个记录的文件进行快速排序,所需要的辅助存储空间大致为

A.O

(1)  B.O(n)  C.O(1og2n)D.O(n2)

∙对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K%9作为散列函数,则散列地址为1的元素有()个,

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

∙设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。

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

∙AOV网是一种()。

A.有向图B.无向图C.无向无环图D.有向无环图

∙时间复杂度不受数据初始状态影响而恒为O(nlog2n)的是()。

A.堆排序B.冒泡排序C.希尔排序D.快速排序

∙快速排序在最坏情况下的时间复杂度为()。

A.O(log2n)B.O(nlog2n)C.0(n)D.0(n2)

∙从二叉搜索树中查找一个元素时,其时间复杂度大致为()。

A.O(n)B.O

(1)C.O(log2n)D.O(n2)

∙用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下:

20,15,21,25,47,27,68,35,84

15,20,21,25,35,27,47,68,84

15,20,21,25,27,35,47,68,84

则所采用的排序方法是()

A.选择排序B.希尔排序C.归并排序D.快速排序

∙设某完全无向图中有n个顶点,则该完全无向图中有()条边。

(A)n(n-1)/2(B)n(n-1)(C)n2(D)n2-1

 

二、判断题

∙线性表的长度是线性表所占用的存储空间的大小。

()

∙在顺序表中取出第i个元素所花费的时间与i成正比。

()

∙在栈为空的情况下,不能做出栈操作,否则产生下溢出。

()

∙在对链队列做出队操作时,不会改变front指针的值。

()

∙二叉树中叶子结点就是二叉树中没有左右子树的结点。

()

∙有向图用邻接矩阵表示后,结点i的出度等于第i行中非0且非∞的元素个数。

()

∙对B树中任一非叶子结点中的某关键字k,比k小的最大关键字和比k大的最小关键字一定都在叶子结点中。

()

∙对任意一个图,从它的某个结点出发进行一次DFS或BFS可访问到该图的每个结点。

()

∙对一个堆,无论按二叉树层次遍历还是先序遍历,都不一定能得到有序序列。

()

∙任一AOE网中至少有一条关键路径,且是从源点到汇点的路径中最长的一条。

()

∙线性表采用链表方式和顺序方式存储,执行插入和删除运算的时间复杂度都是O(n),因而两种存储方式的插入、存储运算所花费的时间相同。

∙在双循环链表中,任意一结点的后继指针均指向其逻辑后继。

∙在对链队列做出队操作时,不会改变front指针的值。

∙已知一棵树的先序序列和后序序列,一定能构造出该树。

∙若一棵二叉树的任一非叶结点的度为2,则该二叉树为满二叉树。

∙有向图用邻接矩阵表示后,顶点i的入度等于邻接矩阵中第i列的元素个数。

∙所谓平衡二叉树是指左右子树的高度差的绝对值不大于1的二叉树。

∙在一个根最大堆中,最大元素在根,最小元素在最低层。

∙快速排序算法在每一趟排序中都能找到一个元素放在其最终的位置上。

∙9阶B树中,除根以外的任一结点中的关键字个数不小于4。

∙在顺序表中取出第i个元素所花费的时间与i成正比。

∙在栈为空的情况下,不能做出栈操作,否则产生下溢出。

∙在循环队列中,若尾指针Rear大于头指针Front,则其元素个数为(Rear–Front)。

∙若一棵二叉树的任一非叶结点的度为2,则该二叉树为满二叉树。

∙已知一棵树的先序序列和后序序列,一定能构造出该树。

向二叉排序树中插入一个结点,所需比较的次数可能大于此二叉排序树的高度。

∙若图G的最小生成树不唯一,则G的边数一定多于n-1,并且权值最小的边有多条。

∙9阶B树中,除根以外的任一个非叶子结点中的关键字数目均在5~9之间。

∙二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:

若它的左子树非空,则根结点的值大于其左孩子的值;若它的右子树非空,则根结点的值小于其右孩子的值。

∙给定结点数的平衡二叉树的高度是唯一的。

∙理想情况下,在散列表中查找一个元素的时间复杂度为O

(1)。

 

三、应用题

∙已知一棵二叉树的前根序列和中根序列分别为ABDGHECFIJ及GDHBEACIJF,请画出这棵二叉树,并写出后根序列。

(8分)

∙给定权值7,18,3,22,5,25,12,8,构造相应的哈夫曼树,并求这棵哈夫曼树的带权路径长度WPL。

(8分)

∙已知散列函数为H(K)=Kmod13,关键码序列为25,37,52,43,84,99,120,15,26,11,70,82,1,采用拉链法处理冲突,画出构造的散列表,并计算查找成功的平均查找长度。

(8分)

设有无向图G(如右图所示),

i、写出采用邻接矩阵存储的表现形式;(3分)

ii、按照其存储结构给出用普里姆算法构造最小生成树的过程(5分)

iii、写出该图的深度优先和广度优先遍历的序列。

(6分)

===============================================

●已知一棵二叉树的前序遍历的结果序列是ABDGEHCFI,中序遍历的结果是GDBHEAFIC,试写出这棵二叉树的后序遍历结果。

(要求分析过程)

●已知某系统在通信联络中只可能出现9种字符,其频率分别为0.05,0.20,0.07,0.08,0.14,0.23,0.02,0.11,0.10设它的权值w=(5,20,7,8,14,23,2,11,10),试设计哈夫曼编码。

●已知一组记录的排序码为(46,79,56,38,40,80,95,24),写出对其进行快速排序的每一次划分结果。

●已知一个散列表如下图所示:

 

 

35

 

20

 

 

33

 

48

 

 

59

0123456789101112

其散列函数为h(key)=key%13,处理冲突的方法为双重散列法,探查序列为:

hi=(h(key)+i*h1(key))%mi=0,1,…,m-1其中h1(key)=key%11+1

回答下列问题:

(1)对表中关键字35,20,33和48进行查找时,所需进行的比较次数各为多少?

(2)该散列表在等概率查找时查找成功的平均查找长度为多少?

==================================================

∙已知一棵二叉树的前序遍历的结果序列是ABDEGIKCFHJL,中序遍历的结果是DBEIKGACFJLH,试写出这棵二叉树的后序遍历结果。

∙设一组初始记录关键字序列为(45,80,48,40,22,78),则分别给出第4趟简单选择排序和第4趟直接插入排序后的结果。

∙设散列表的长度为8,散列函数H(k)=kmod7,初始记录关键字序列为(25,31,8,27,13,68),要求分别计算出用线性探测法和链地址法作为解决冲突方法的平均查找长度。

∙已知一个图的顶点集V和边集E分别为:

V={1,2,3,4,5,6,7};E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25};用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。

 

四、阅读算法

●如下为二分查找的非递归算法,试将其填写完整。

IntBinsch(ElemTypeA[],intn,KeyTypeK)

{

intlow=0;

inthigh=n-1;

while(low<=high)

{

intmid=______________________;

if(K==A[mid].key)returnmid;//查找成功,返回元素的下标

elseif(K<[mid].key)

_______________________;//在左子表上继续查找

else__________________;//在右子表上继续查找

}

return-1;//查找失败,返回-1

}

●设有一二叉链表T,编写递归算法,计算二叉链表中叶子的数目;

●假设在长度大于1的单循环链表中,既无头结点也无头指针。

s为指向链表中某个结点的指针,试编写算法删除结点*s的前趋结点。

●阅读算法

∙LinkListmynote(LinkListL)

{//L是不带头结点的单链表的头指针

if(L&&L->next){

q=L;L=L->next;p=L;

S1:

while(p->next)p=p->next;

S2:

p->next=q;q->next=NULL;

}

returnL;

}

请回答下列问题:

(1)说明语句S1的功能;(3分)

(2)说明语句组S2的功能;(3分)

∙二叉搜索树的查找——递归算法:

(9分)

boolFind(BTreeNode*BST,ElemType&item)

{

if(BST==NULL)

returnfalse;//查找失败

else

{

if(item==BST->data)

{

item=BST->data;//查找成功

return_____

(1)____;

}

else

if(itemdata)

returnFind(_____

(2)_______,item);

elsereturnFind(_______(3)______,item);

}//if

}

五.(10分)已知一个图的顶点集V各边集G如下:

V={0,1,2,3,4,5,6,7,8,9};

E={(0,1),(0,3),(1,2),(1,7),(2,8),(3,4),(3,5),(5,6),(5,8),(5,9),(6,7),(7,8),(8,9)}

(1)写出它的邻接表;(4分)

(2)根据邻接表存储分别写出从顶点V0出发按深度优先搜索遍历得到的顶点序列和按广度优先搜索遍历得到的顶点序列。

(6分)

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

当前位置:首页 > 高等教育 > 院校资料

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

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