数据结构试试题库答案.docx

上传人:b****6 文档编号:3408329 上传时间:2022-11-22 格式:DOCX 页数:38 大小:205.35KB
下载 相关 举报
数据结构试试题库答案.docx_第1页
第1页 / 共38页
数据结构试试题库答案.docx_第2页
第2页 / 共38页
数据结构试试题库答案.docx_第3页
第3页 / 共38页
数据结构试试题库答案.docx_第4页
第4页 / 共38页
数据结构试试题库答案.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

数据结构试试题库答案.docx

《数据结构试试题库答案.docx》由会员分享,可在线阅读,更多相关《数据结构试试题库答案.docx(38页珍藏版)》请在冰豆网上搜索。

数据结构试试题库答案.docx

数据结构试试题库答案

数据构造试题及答案

一、单项选择题

(1)一个算法应该是〔〕。

A)程序B)问题求解步骤的描述

C)要满足五个根本属性D)A和C

(2)算法指的是〔〕。

A)计算机程序B)解决问题的计算方法

C)排序算法D)解决问题的有限运算序列。

(3)与数据元素本身的形式、容、相对位置、个数无关的是数据的〔〕。

A)存储构造B)逻辑构造C)算法D)操作

(4)从逻辑上可以把数据构造分为〔〕两大类。

A)动态构造、静态构造B)顺序构造、链式构造

C)线性构造、非线性构造D)初等构造、构造型构造  

(5)以下表达中正确的选项是()。

  A〕一个逻辑数据构造只能有一种存储构造

  B〕数据的逻辑构造属于线性构造,存储构造属于非线性构造

  C〕一个逻辑数据构造可以有多种存储构造,且各种存储构造不影响数据处理的效率

D〕一个逻辑数据构造可以有多种存储构造,且各种存储构造影响数据处理的效率

(6)数据的根本单位是〔   〕

A)数据项B)数据类型C)数据元素D)数据变量

(7)以下程序的时间复杂度为〔   〕

i=0;s=0;

while〔s

{i++;s=s+i;}

A)O〔

〕B)O〔

〕C)O〔n〕D)O〔n2〕

(8)以下程序段的渐进时间复杂度为〔〕。

for(inti=1;i<=n;i++)

for(intj=1;j<=m;j++)

A[i][j]=i*j;

A〕O(m2)B〕O(n2)C〕O(m*n)D〕(m+n)

(9)程序段如下:

sum=0;

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

for(j=1;j<=n;j++)

sum++;

其中n为正整数,那么最后一行的语句频度在最坏情况下是〔〕。

A〕O(n〕B)O(nlogn)C)O(n3)D)O(n2)

(10)在下面的程序段中,对x的赋值语句的频度为〔〕。

for(i=1;i>=n;i++)

for(j=1;j>=n;j++)

x:

=x+1;

A)O(2n)B)O(n)C)O(n2)D)O(log2n)

(11)程序段for(i:

=n-1;i<=1;i--〕

for(j:

=1;j>=i;j++)

if(a[j]>a[j+1])

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

其中n为正整数,那么最后一行的语句频度在最坏情况下是〔〕。

A)O(n〕B)O(nlogn)C)O(n3)D)O(n2)

(12)设有一个递归算法如下:

intfact(intn)

{/*大于等于0*/

if(n<=0)return1;

elsereturnn*fact(n-1);

}

那么计算fact(n)需要调用该函数的次数为〔〕。

A)nB)n+1C)n+2D)n-1

(13)下述程序段中语句①的频度是〔   〕。

s=0;

for(i=1;i

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

s+=j;

A)

B)

C)

D)

(14)假设某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,那么最节省运算时间的存储方式是〔   〕。

A)单链表B)仅有头指针的单循环链表

C)双链表D)仅有尾指针的单循环链表

(1)求循环链表中当前结点的后继和前驱的时间复杂度分别是〔  〕。

A)O(n)和O

(1)B)O

(1)和O

(1)C)O

(1)和O(n)D)O(n)和O(n)

(15)求单链表中当前结点的后继和前驱的时间复杂度分别是〔〕。

A)O〔n〕和O〔1〕B)O〔1〕和O〔1〕

C)O〔1〕和O〔n〕D)O(n)和O〔n〕

(16)非空的单循环链表的头指针为head,尾指针为rear,那么以下条件成立的是〔  〕。

A)rear->next==headB)rear->next->next==head

C)head->next==rearD)head->next->next==rear

(17)从一个长度为n的顺序表中删除第i个元素〔1≤i≤n〕时,需向前移动的元素的个数是〔  〕。

A)n-iB)n-i+1C)n-i-1D)i

(18)一个有序表为〔13,18,24,35,47,50,62,83,90,115,134〕,当二分检索值为90的元素时,检索成功需比拟的次数是〔  〕。

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

(19)假设以行优先顺序存储三维数组R[6][9][6],其中元素R[0][0][0]的地址为2100,且每个元素占4个存储单元,那么存储地址为2836的元素是〔  〕。

A)R[3][3][3]B)R[3][3][4]C)R[4][3][5]D)R[4][3][4]

(20)设有一个10阶的对称矩阵A,采用压缩存储方式以行序为主序存储,a00为第一个元素,其存储地址为0,每个元素占有1个存储地址空间,那么a45的地址为〔  〕。

A)13B)35C)17D)36

(21)线性表采用链式存储时,节点的存储的地址〔〕。

A)必须是不连续的B)连续与否均可

C)必须是连续的D)和头节点的存储地址相连续

(22)用链表表示线性表的优点是〔〕。

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

C)数据元素的物理顺序与逻辑顺序一样D)便于插入与删除

(23)链表不具有的特点是〔〕。

A)插入、删除不需要移动元素B)可随机访问任一元素

C)不必事先估计存储空间D)所需空间与线性长度成正比

(24)在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为()。

A)n-i+1B)iC)i+1D)n-i

(25)采用顺序搜索方法查找长度为n的顺序表示,搜索成功的平均搜索长度为〔〕。

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

(26)将长度为n的单链表在长度为m的单链表之后的算法的时间复杂度为〔〕。

A)O

(1)B)O(n)C)O(m)D)O(m+n)

(27)假设不带头结点的单链表的头指针为head,那么该链表为空的判定条件是()。

A)head==NULL  B)head->next==NULLC)head!

=NULL  D)head->next==head

(28)某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,那么采用〔〕存储方式最节省运算时间。

A)单链表B)仅有头指针的单循环链表

C)双链表D)仅有尾指针的单循环链表

(29)假设允许表达式多种括号混合嵌套,那么为检查表达式中括号是否正确配对的算法,通常选用的辅助构造是〔   〕。

A)栈B)线性表C)队列D)二叉排序树

(30)顺序栈S中top为栈顶指针,指向栈顶元素所在的位置,elem为存放栈的数组,那么元素e进栈操作的主要语句为〔   〕。

A)s.elem[top]=e;s.top=s.top+1;B)s.elem[top+1]=e;s.top=s.top+1;

C)s.top=s.top+1;s.elem[top+1]=e;D)s.top=s.top+1;s.elem[top]=e;

(31)循环队列sq中,用数组elem[0··25]存放数据元素,sq.front指示队头元素的前一个位置,sq.rear指示队尾元素的当前位置,设当前sq.front为20,sq.rear为12,那么当前队列中的元素个数为〔   〕。

A)8B)16C)17D)18

(32)链式栈与顺序栈相比,一个比拟明显的优点是〔〕。

A)插入操作更加方便B)通常不会出现栈满的情况

C)不会出现栈空的情况D)删除操作更加方便

(33)一个递归的定义可以用递归过程求解,也可以用非递归过程求解,但单从运行时间来看,通常递归过程比非递归过程〔〕。

A)较快B)较慢C)一样D)不定

(34)假设一个栈的入栈序列是1,2,3,4……n,其输出序列为p1,p2,p3,……pn,假设p1==n,那么pi为〔〕。

A)iB)n==iC)n-i+1D)不确定

(35)一个栈的入栈序列是a,b,c,d,e,那么栈的不可能的输出序列是()。

A)edcbaB)decbaC)dceabD)abcde

(36)假设进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进展,那么不可能出现的出栈序列是()。

A)2,4,3,1,5,6  B)3,2,4,1,6,5

C)4,3,2,1,5,6  D)2,3,5,1,6,4

(37)对于栈操作数据的原那么是〔〕。

A)先进先出B)后进先出C)后进后出D)不分顺序

(38)栈和队列的共同点是〔〕。

A)都是先进先出B)都是先进后出

C)只允许在端点处插入和删除元素D)没有共同点

(39)一个队列的入队序列是1,2,3,4,那么队列的输出序列是〔〕。

A)4,3,2,1B)1,2,3,4C)1,4,3,2D)3,2,4,1

(40)设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,那么执行出对操作后其头指针front值为〔〕。

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

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

(41)引起循环队列队头位置发生变化的操作是()。

A)出队B)入队  C)取队头元素D)取队尾元素

(2)设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,那么当前队列中的元素个数为〔〕。

A〕(rear-front+m)%mB〕rear-front+1C〕(front-rear+m)%mD〕(rear-front)%m

(42)二维数组A[12][18]采用列优先的存储方法,假设每个元素各占3个存储单元,且A[0][0]地址为150,那么元素A[9][7]的地址为()。

A)429 B)432 C)435     D)438

(43)设有一个10阶的对称矩阵A[10][10],采用压缩方式按行将矩阵中下三角局部的元素存入一维数组B[]中,A[0][0]存入B[0]中,那么A[8][5]在B[]中〔〕位置。

A)32B)33 C)41D)65

(44)假设对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B[1..(n(n+1))/2]中,那么在B中确定aij〔i

A)i*(i-1)/2+jB)j*(j-1)/2+iC)i*(i+1)/2+jD)j*(j+1)/2+i

(45)对稀疏矩阵进展压缩存储目的是〔〕。

A)便于进展矩阵运算B)便于输入和输出

C)节省存储空间D)降低运算的时间复杂度

(46)对广义表L=((a,b),(c,d),(e,f))执行操作tail(tail(L))的结果是()。

A)(e,f)B)((e,f))C)(f)D)()

(47)设广义表L=〔〔a,b,c〕〕,那么L的长度和深度分别为〔〕。

A)1和1B)1和3C)1和2D)2和3

(48)树中所有结点的度之和等于所有结点数加〔〕。

A)0B)1C)-1D)2

(49)在一棵具有n个结点的二叉链表中,所有结点的空域个数等于〔〕。

A)nB)n-1C)n+1D)2*n

(50)某二叉树的先序序列和后序序列正好相反,那么该二叉树一定是〔〕的二叉树。

A)空或只有一个结点B)高度等于其节点数

C)任一结点无左孩子D)任一结点无右孩子

(51)含有10个结点的二叉树中,度为0的结点数为4,那么度为2的结点数为〔   〕

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

(52)除第一层外,满二叉树中每一层结点个数是上一层结点个数的〔   〕

A)1/2倍B)1倍C)2倍D)3倍

(53)对一棵有100个结点的完全二叉树按层编号,那么编号为49的结点,它的父结点的编号为〔   〕

A)24B)25C)98D)99

(54)可以惟一地转化成一棵一般树的二叉树的特点是〔   〕

A)根结点无左孩子B)根结点无右孩子C)根结点有两个孩子D)根结点没有孩子

(55)设高度为h的二叉树上只有度为0和度为2的结点,那么此类二叉树中所包含的结点数至少为〔〕。

A)2hB)2h-1C)2h+1D)h+1

(56)在一棵度为3的树中,度为3的节点个数为2,度为2的节点个数为1,那么度为0的节点个数为〔〕。

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

(57)设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵子树的结点个数是〔〕。

A)m-nB)m-n-1C)n+1D)条件缺乏,无法确定

(58)将一株有100个节点的完全二叉树从上到下,从左到右依次进展编号,根节点的编号为1,那么编号为49的节点的左孩子编号为〔〕。

A)98B)89C)50D)没有孩子

(59)以下图示的顺序存储构造表示的二叉树是(A)

 

(60)树最适合用来表示〔〕。

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

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

(61)在一个非空二叉树的中序遍历序列中,根结点的右边〔〕。

A)只有右子树上的所有结点B)只有右子树上的局部结点

C)只有左子树的上的局部结点D)只有左子树上的所有结点

(62)任何一棵二叉树的叶结点在先序、中序和后序遍历序列中相对次序〔〕。

A)不发生改变B)发生改变C)不能确定D)以上都不对

(63)在有n个叶子结点的哈夫曼树中,其结点总数为〔〕。

A)不确定B)2nC)2n+1D)2n-1

(64)权值为{1,2,6,8}的四个结点构成的哈夫曼树的带权路径长度是〔〕。

A)18B)28C)19D)29

(65)对一个满二叉树,m个树叶,k个分枝结点,n个结点,那么〔〕。

A)n=m+1B)m+1=2nC)m=k-1D)n=2k+1

(66)在含有n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为〔〕。

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

(67)假设采用邻接矩阵翻存储一个n个顶点的无向图,那么该邻接矩阵是一个〔〕。

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

(68)在一个图中,所有顶点的度数之和等于所有边数的〔〕倍。

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

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

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

(70)对于含n个顶点和e条边的图,采用邻接矩阵表示的空间复杂度为〔〕。

A)O〔n〕B)O(e)C)O(n+e)D)O(n2)

(71)如果求一个连通图中以某个顶点为根的高度最小的生成树,应采用〔〕。

A)深度优先搜索算法B)广度优先搜索算法

C)求最小生成树的prim算法D)拓扑排序算法

(72)n个顶点的连通图至少中含有()。

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

(73)n个顶点的完全有向图中含有()。

A)n-1条有向边   B)n条有向边C)n(n-1)/2条有向边 D)n(n-1)条有向边

(74)假设一个有n个顶点和e条弧的有向图用邻接表表示,那么删除预某个顶点vi相关的所有弧的时间复杂度是〔〕。

A)O(n)B)O(e)C)O(n+e)D)O(n*e)

(75)在无向图中定义顶点Vi域Vj之间的路径为从Vi到达Vj的一个〔〕。

A)顶点序列B)边序列C)权值总和D)边的条数

(76)无向图G=(V,E),其中:

V={a,b,c,d,e,f},E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)},对该图进展深度优先遍历,得到的顶点序列正确的选项是〔〕。

A)a,b,e,c,d,fB)a,c,f,e,b,dC)a,e,b,c,f,dD)a,e,d,f,c,b

(77)下面哪一方法可以判断出一个有向图是否有环〔回路〕。

A)求节点的度B)拓扑排序C)求最短路径D)求关键路径

(78)图的广度优先搜索类似于树的〔〕次序遍历。

A)先根B)中根C)后根D)层次

(79)在图采用邻接表存储时,求最小生成树的Prim算法的时间复杂度为()。

A)O(n)B)O(n+e)C)O(n2)D)O(n3)

(80)有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={,,,,,,,,},G的拓扑序列是〔〕。

A)V1,V3,V4,V6,V2,V5,V7B)V1,V3,V2,V6,V4,V5,V7

C)V1,V3,V4,V5,V2,V6,V7D)V1,V2,V5,V3,V4,V6,V7

(81)关键路径是事件结点网络中〔〕。

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

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

(82)有n个结点的有向完全图的弧数是〔   〕。

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

(83)设图的邻接链表如题12图所示,那么该图的边的数目是〔   〕。

 

A)4B)5C)10D)20

(84)在一个图中,所有顶点的度数之和等于图的边数的〔〕倍。

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

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

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

(86)有8个结点的无向图最多有〔〕条边。

A)14B)28C)56D)112

(87)有8个结点的无向连通图最少有〔〕条边。

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

(88)有8个结点的有向完全图有〔〕条边。

A)14B)28C)56D)112

(89)用邻接表表示图进展广度优先遍历时,通常是采用〔〕来实现算法的。

A)栈B)队列C)树D)图

(90)用邻接表表示图进展深度优先遍历时,通常是采用〔〕来实现算法的。

A)栈B)队列C)树D)图

(91)图的邻接矩阵,根据算法思想,那么从顶点0出发按深度优先遍历的结点序列是〔〕。

 

 

A)0243156B)0136542C)0423165D)0361542

建议:

0134256

(92)图的邻接矩阵同上题8,根据算法,那么从顶点0出发,按深度优先遍历的结点序列是〔〕。

A)0243156B)0135642C)0423165D)0134256

(93)图的邻接矩阵同上题8,根据算法,那么从顶点0出发,按广度优先遍历的结点序列是〔〕。

A)0243651B)0136425C)0423156D)0134256

〔建议:

0123456〕

(94)图的邻接矩阵同上题8,根据算法,那么从顶点0出发,按广度优先遍历的结点序列是〔〕。

A)0243165B)0135642C)0123465D)0123456

(95)图的邻接表如下所示,根据算法,

那么从顶点0出发按深度优先遍历的结点序列是〔〕。

 

A)132B)0231C)0321D)0123

(96)图的邻接表如下所示,根据算法,那么从顶点0出发按广度优先遍历的结点序列是〔〕。

 

A)0321B)0123C)0132D)0312

(97)深度优先遍历类似于二叉树的〔〕。

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

(98)广度优先遍历类似于二叉树的〔〕。

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

(99)任何一个无向连通图的最小生成树〔〕。

A)只有一棵B)一棵或多棵C)一定有多棵D)可能不存在

〔注,生成树不唯一,但最小生成树唯一,即边权之和或树权最小的情况唯一〕

(100)在分析折半查找的性能时常常参加失败节点,即外节点,从而形成扩大的二叉树。

假设设失败节点i所在层次为Li,那么查找失败到达失败点时所做的数据比拟次数是〔〕。

A)Li+1B)Li+2C)Li-1D)Li

(101)向一个有127个元素原顺序表中插入一个新元素并保存原来顺序不变,平均要移动〔〕个元素。

A)8B)63.5C)63D)7

(102)由同一组关键字集合构造的各棵二叉排序树()。

A)其形态不一定一样,但平均查找长度一样

B)其形态不一定一样,平均查找长度也不一定一样

C)其形态均一样,但平均查找长度不一定一样

D)其形态均一样,平均查找长度也都一样

(103)衡量查找算法效率的主要标准是〔〕。

A)元素的个数B)所需的存储量C)平均查找长度D)算法难易程度

(104)适合对动态查找表进展高效率查找的组织构造是〔〕。

A)有序表B)分块有序表C)二叉排序树D)快速排序

(3)能进展二分查找的线性表,必须以〔  〕。

A)顺序方式存储,且元素按关键字有序

B)链式方式存储,且元素按关键字有序

C)顺序方式存储,且元素按关键字分块有序

D)链式方式存储,且元素按关键字分块有序

(105)为使平均查找长度到达最小,当由关键字集合{05,11,21,25,37,40,41,62,84}构建二叉排序树时,第一个插入的关键字应为〔   〕

A)5B)37C)41D)62

(106)对关键字序列(56,23,78

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

当前位置:首页 > 小学教育 > 语文

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

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