《数据结构试题库答案.doc》由会员分享,可在线阅读,更多相关《数据结构试题库答案.doc(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据结构试题及答案一、单项选择题(1) 一个算法应该是( )。A) 程序 B) 问题求解步骤的描述 C) 要满足五个基本属性 D) A和C(2) 算法指的是( )。A) 计算机程序 B) 解决问题的计算方法C) 排序算法 D) 解决问题的有限运算序列。(3) 与数据元素本身的形式、内容、相对位置、个数无关的是数据的( )。A) 存储结构 B) 逻辑结构 C) 算法 D)操作(4) 从逻辑上可以把数据结构分为( )两大类。A) 动态结构、静态结构 B) 顺序结构、链式结构 C) 线性结构、非线性结构 D) 初等结构、构造型结构 (5) 下列叙述中正确的是( )。 A)一个逻辑数据结构只能有一种存
2、储结构B)数据的逻辑结构属于线性结构,存储结构属于非线性结构 C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率 D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率(6) 数据的基本单位是()A) 数据项B) 数据类型 C) 数据元素 D) 数据变量(7) 下列程序的时间复杂度为()i=0;s=0;while(sn) i+;s=s+i;A) O()B) O()C) O(n)D) O(n2)(8) 下列程序段的渐进时间复杂度为( )。 for( int i=1;i=n;i+) for( int j=1;j= m; j+) Aij = i*j ;A)O
3、(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 ; 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=i ; j+) if (ajaj+1 ) t=aj; aj= aj+1; aj+1= t; 其中 n为正整数,则最后一行的语句频度在最坏情况下是( )。A) O(n) B) O(nlogn) C) O(n3) D) O(n2) (12) 设有一个递归算法如下
4、:int fact(int n) /* 大于等于0 */ if ( n=0 ) return 1 ; else return n*fact (n-1) ;则计算fact(n)需要调用该函数的次数为( )。A) n B) n+1 C) n+2 D) n-1 (13) 下述程序段中语句的频度是()。s=0;for(i=1;im;i+)for(j=0;jnext= =headB) rear-next-next= =headC) head-next= =rearD) head-next-next= =rear(17) 从一个长度为n的顺序表中删除第i个元素(1in)时,需向前移动的元素的个数是()。A
5、)n-iB)n-i+1C)n-i-1D)i(18) 已知一个有序表为(13,18,24,35,47,50,62,83,90,115,134),当二分检索值为90的元素时,检索成功需比较的次数是()。A)1 B)2C)3D)4(19) 假设以行优先顺序存储三维数组R696,其中元素R000的地址为2100,且每个元素占4个存储单元,则存储地址为2836的元素是()。A) R333B) R334C) R435D) R434(20) 设有一个10阶的对称矩阵A,采用压缩存储方式以行序为主序存储,a00为第一个元素,其存储地址为0,每个元素占有1个存储地址空间,则a45的地址为()。A) 13B) 3
6、5C) 17D) 36(21) 线性表采用链式存储时,节点的存储的地址( )。A) 必须是不连续的 B) 连续与否均可C) 必须是连续的 D) 和头节点的存储地址相连续(22) 用链表表示线性表的优点是( )。A) 便于随机存取 B) 花费的存储空间比顺序表少 C) 数据元素的物理顺序与逻辑顺序相同 D) 便于插入与删除(23) 链表不具有的特点是( ) 。A) 插入、删除不需要移动元素 B) 可随机访问任一元素 C) 不必事先估计存储空间 D) 所需空间与线性长度成正比(24) 在长度为n的顺序表中删除第i个元素(1in)时,元素移动的次数为( )。A) n-i+1 B) i C) i+1
7、D) 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!=NULLD) head-next=head(28) 某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用(
8、 )存储方式最节省运算时间。A) 单链表 B) 仅有头指针的单循环链表C) 双链表 D) 仅有尾指针的单循环链表(29) 若允许表达式内多种括号混合嵌套,则为检查表达式中括号是否正确配对的算法,通常选用的辅助结构是()。A) 栈B) 线性表C) 队列D) 二叉排序树(30) 顺序栈S中top为栈顶指针,指向栈顶元素所在的位置,elem为存放栈的数组,则元素e进栈操作的主要语句为()。A) s.elemtop=e;s.top=s.top+1;B) s.elemtop+1=e;s.top=s.top+1; C) s.top=s.top+1;s.elemtop+1=e;D) s.top=s.top+
9、1;s.elemtop=e; (31) 循环队列sq中,用数组elem025存放数据元素,sq.front指示队头元素的前一个位置,sq.rear指示队尾元素的当前位置,设当前sq.front为20,sq.rear为12,则当前队列中的元素个数为()。A) 8 B) 16 C) 17 D) 18(32) 链式栈与顺序栈相比,一个比较明显的优点是( )。A) 插入操作更加方便 B) 通常不会出现栈满的情况C) 不会出现栈空的情况 D) 删除操作更加方便(33) 一个递归的定义可以用递归过程求解,也可以用非递归过程求解,但单从运行时间来看,通常递归过程比非递归过程( )。A) 较快 B) 较慢 C
10、) 相同 D) 不定(34) 若已知一个栈的入栈序列是1,2,3,4n,其输出序列为p1,p2,p3,pn,若p1= =n,则pi为( )。A) i B) n= =i C) n-i+1 D) 不确定(35) 一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是( ) 。A) edcba B) decba C) dceab D) abcde(36) 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不可能出现的出栈序列是( )。A) 2,4,3,1,5,6 B) 3,2,4,1,6,5C) 4,3,2,1,5,6 D) 2,3,5,1,6,4(37) 对于栈操作数据的原则
11、是( )。A) 先进先出 B) 后进先出 C) 后进后出 D) 不分顺序(38) 栈和队列的共同点是( )。A) 都是先进先出 B) 都是先进后出 C) 只允许在端点处插入和删除元素 D) 没有共同点(39) 一个队列的入队序列是1,2,3,4,则队列的输出序列是( )。A) 4,3,2,1 B) 1,2,3,4 C)1,4,3,2 D) 3,2,4,1(40) 设数组datam作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出对操作后其头指针front值为( )。A) front=front+1 B) front=(front+1)%(m-1) C) front=
12、(front-1)%m D) front=(front+1)%m(41) 引起循环队列队头位置发生变化的操作是( )。A) 出队B) 入队 C) 取队头元素 D) 取队尾元素(2) 设以数组Am存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为( )。A)(rear-front+m)%m B)rear-front+1C)(front-rear+m)%m D)(rear-front)%m(42) 二维数组A1218采用列优先的存储方法,若每个元素各占3个存储单元,且A00地址为150,则元素A97的地址为( )。A) 429 B) 432 C) 435 D) 43
13、8(43) 设有一个10阶的对称矩阵A1010,采用压缩方式按行将矩阵中下三角部分的元素存入一维数组B中,A00存入B0中,则A85在B中( )位置。A) 32 B) 33 C) 41 D) 65(44) 若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B1.(n(n+1)/2中,则在B中确定aij(ij)的位置k的关系为( )。A) i*(i-1)/2+j B) j*(j-1)/2+i C) i*(i+1)/2+j D) j*(j+1)/2+i(45) 对稀疏矩阵进行压缩存储目的是( )。A) 便于进行矩阵运算 B) 便于输入和输出C) 节省存
14、储空间 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和1 B) 1和3 C) 1和2 D) 2和3(48) 树中所有结点的度之和等于所有结点数加( )。A) 0 B)1 C) -1 D) 2(49) 在一棵具有n个结点的二叉链表中,所有结点的空域个数等于( )。A) n B) n-1 C) n+1 D) 2*n(50) 某二叉树的先序序列和后序序列正好相反,则该二叉树一定
15、是( )的二叉树。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的
16、二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为( )。A) 2h B) 2h-1 C) 2h+1 D) h+1(56) 在一棵度为3的树中,度为3的节点个数为2,度为2的节点个数为1,则度为0的节点个数为( )。A) 4 B) 5 C) 6 D) 7(57) 设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵子树的结点个数是( )。A)m-n B)m-n-1 C) n+1 D) 条件不足,无法确定 (58) 将一株有100个节点的完全二叉树从上到下,从左到右依次进行编号,根节点的编号为1,则编号为49的节点的 左孩子编号为()。A)
17、 98 B) 89 C) 50 D) 没有孩子(59) 下列图示的顺序存储结构表示的二叉树是(A ) (60) 树最适合用来表示( )。A) 有序数据元素 B) 无序数据元素C) 元素之间具有分支层次关系的数据 D) 元素之间无联系的数据(61) 在一个非空二叉树的中序遍历序列中,根结点的右边( )。A) 只有右子树上的所有结点 B) 只有右子树上的部分结点C) 只有左子树的上的部分结点 D) 只有左子树上的所有结点(62) 任何一棵二叉树的叶结点在先序、中序和后序遍历序列中相对次序( )。A) 不发生改变 B) 发生改变 C) 不能确定 D) 以上都不对(63) 在有n个叶子结点的哈夫曼树中
18、,其结点总数为( )。A) 不确定 B) 2n C) 2n+1 D) 2n-1(64) 权值为1,2,6,8的四个结点构成的哈夫曼树的带权路径长度是( )。A) 18 B) 28 C) 19 D) 29(65) 对一个满二叉树,m个树叶,k个分枝结点,n个结点,则( )。A) n=m+1 B) m+1=2n C) m=k-1 D) n=2k+1(66) 在含有n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为( )。A) e B) 2e C) n2-e D) n2-2e(67) 若采用邻接矩阵翻存储一个n个顶点的无向图,则该邻接矩阵是一个( )。A) 上三角矩阵 B) 稀疏矩阵 C) 对角矩
19、阵 D) 对称矩阵(68) 在一个图中,所有顶点的度数之和等于所有边数的( )倍。A) 1/2 B) 1 C) 2 D) 4(69) 在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( )倍。A) 1/2 B) 1 C) 2 D) 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-1 B
20、) n C) n+1 D) 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
21、,e),(c,f), (f,d),(e,d),对该图进行深度优先遍历,得到的顶点序列正确的是( )。A) a,b,e,c,d,f B) a,c,f,e,b,d C) a,e,b,c,f,d D) 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)(
22、80) 已知有向图G=(V,E),其中V=V1,V2,V3,V4,V5,V6,V7,E=, ,G的拓扑序列是( )。A) V1,V3,V4,V6,V2,V5,V7 B) V1,V3,V2,V6,V4,V5,V7C) V1,V3,V4,V5,V2,V6,V7 D) 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图所示,则该图的边的数目是()
23、。83题图A) 4 B) 5 C) 10D) 20(84) 在一个图中,所有顶点的度数之和等于图的边数的( )倍。A) 1/2 B) 1 C) 2 D) 4 (85) 在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( )倍。A) 1/2 B) 1 C) 2 D) 4 (86) 有8个结点的无向图最多有( )条边。A) 14 B) 28 C) 56 D) 112 (87) 有8个结点的无向连通图最少有( )条边。A) 5 B) 6 C) 7 D) 8 (88) 有8个结点的有向完全图有( )条边。A) 14 B) 28 C) 56 D) 112 (89) 用邻接表表示图进行广度优先遍
24、历时,通常是采用( )来实现算法的。A) 栈 B) 队列 C) 树 D) 图 (90) 用邻接表表示图进行深度优先遍历时,通常是采用( )来实现算法的。A) 栈 B) 队列 C) 树 D) 图 (91) 已知图的邻接矩阵,根据算法思想,则从顶点0出发按深度优先遍历的结点序列是( )。A) 0 2 4 3 1 5 6B)0 1 3 6 5 4 2C) 0 4 2 3 1 6 5 D) 0 3 6 1 5 4 2建议:0 1 3 4 2 5 6(92) 已知图的邻接矩阵同上题8,根据算法,则从顶点0出发,按深度优先遍历的结点序列是( )。A) 0 2 4 3 1 5 6 B) 0 1 3 5 6
25、4 2 C) 0 4 2 3 1 6 5 D) 0 1 3 4 2 5 6(93) 已知图的邻接矩阵同上题8,根据算法,则从顶点0出发,按广度优先遍历的结点序列是( )。A) 0 2 4 3 6 5 1 B) 0 1 3 6 4 2 5 C) 0 4 2 3 1 5 6 D) 0 1 3 4 2 5 6(建议:0 1 2 3 4 5 6)(94) 已知图的邻接矩阵同上题8,根据算法,则从顶点0出发,按广度优先遍历的结点序列是( )。A) 0 2 4 3 1 6 5 B) 0 1 3 5 6 4 2 C) 0 1 2 3 4 6 5 D) 0 1 2 3 4 5 6(95) 已知图的邻接表如下所
26、示,根据算法,则从顶点0出发按深度优先遍历的结点序列是( )。A) 1 3 2 B) 0 2 3 1 C) 0 3 2 1 D) 0 1 2 3(96) 已知图的邻接表如下所示,根据算法,则从顶点0出发按广度优先遍历的结点序列是( )。A) 0 3 2 1 B) 0 1 2 3 C) 0 1 3 2 D) 0 3 1 2(97) 深度优先遍历类似于二叉树的( )。A) 先序遍历 B) 中序遍历 C) 后序遍历 D) 层次遍历(98) 广度优先遍历类似于二叉树的( )。A) 先序遍历 B) 中序遍历 C) 后序遍历 D) 层次遍历(99) 任何一个无向连通图的最小生成树( )。A) 只有一棵 B
27、) 一棵或多棵 C) 一定有多棵 D) 可能不存在(注,生成树不唯一,但最小生成树唯一,即边权之和或树权最小的情况唯一)(100) 在分析折半查找的性能时常常加入失败节点,即外节点,从而形成扩充的二叉树。若设失败节点i所在层次为Li,那么查找失败到达失败点时所做的数据比较次数是( )。A) Li+1 B) Li+2 C) Li-1 D) Li (101) 向一个有127个元素原顺序表中插入一个新元素并保存原来顺序不变,平均要移动( )个元素。A) 8 B) 63.5 C) 63 D) 7 (102) 由同一组关键字集合构造的各棵二叉排序树( )。A) 其形态不一定相同,但平均查找长度相同B)
28、其形态不一定相同,平均查找长度也不一定相同C) 其形态均相同,但平均查找长度不一定相同D) 其形态均相同,平均查找长度也都相同(103) 衡量查找算法效率的主要标准是( )。A) 元素的个数 B) 所需的存储量 C) 平均查找长度 D) 算法难易程度(104) 适合对动态查找表进行高效率查找的组织结构是( )。A) 有序表 B) 分块有序表 C) 二叉排序树 D) 快速排序(3) 能进行二分查找的线性表,必须以()。A) 顺序方式存储,且元素按关键字有序B) 链式方式存储,且元素按关键字有序C) 顺序方式存储,且元素按关键字分块有序D) 链式方式存储,且元素按关键字分块有序(105) 为使平均
29、查找长度达到最小,当由关键字集合05,11,21,25,37,40,41,62,84构建二叉排序树时,第一个插入的关键字应为()A)5B)37C) 41D) 62(106) 对关键字序列(56,23,78,92,88,67,19,34)进行增量为3的一趟希尔排序的结果为( )。A) (19,23,56,34,78,67,88,92) B) 23,56,78,66,88,92,19,34)C) (19,23,34,56,67,78,88,92) D) (19,23,67,56,34,78,92,88)(107) 用某种排序方法对关键字序列35,84,21,47,15,27,68,25,20进行排
30、序时,序列的变化情况如下:20,15,21,25,47,27,68,35,8415,20,21,25,35,27,47,68,8415,20,21,25,27,35,47,68,84则采用的方法是( )。A) 直接选择排序 B) 希尔排序 C) 堆排序 D) 快速排序(108) 一组记录的排序码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的第一次划分结果为( )。A) 38,40,46,56,79,84 B) 40,38,46,79,56,84C) 40,38,46,56,79,84 D) 40,38,46,84,56,79(109) 快速排序在最坏情
31、况下的时间复杂度是()A) O(n2log2n)B) O(n2)C) O(nlog2n)D) O(log2n)(110) 下列排序算法中不稳定的是( )。A) 直接选择排序 B) 折半插入排序 C) 冒泡排序 D) 快速排序(111) 对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列进行同样的排序操作,直到子序列为空或只剩下一个元素为止。这样的排序方法是( )。A) 直接选择排序 B) 直接插入排序 C) 快速排序 D) 冒泡排序 (112) 将5个不同的数据进行排序,至多需要比较( )次。A) 8 B) 9 C) 10 D) 25(113) 排序算法中,第一趟排序后,任一
32、元素都不能确定其最终位置的算法是()。A)选择排序B)快速排序C)冒泡排序D)插入排序(114) 排序算法中,不稳定的排序是()。A)直接插入排序B)冒泡排序C)堆排序D)选择排序(115) 排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为( ).A) 希尔排序 B) 冒泡排序 C) 插入排序 D) 选择排序(116) 从未排序序列中挑选元素,并将其依次插入已排序序列(初始时为空)的一端的方法,称为( )。A) 希尔排序 B) 归并排序 C) 插入排序 D) 选择排序(117) 对个不同的排序码进行冒泡排序,在下列哪种
33、情况下比较的次数最多。( )A) 从小到大排列好的 B) 从大到小排列好的C) 元素无序 D) 元素基本有序(118) 对个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数为( )。A) n+1 B) n C) n-1 D) n(n-1)/2(119) 快速排序在下列哪种情况下最易发挥其长处。( )A) 被排序的数据中含有多个相同排序码 B) 被排序的数据已基本有序C) 被排序的数据完全无序D) 被排序的数据中的最大值和最小值相差悬殊(120) 对有n个记录的表作快速排序,在最坏情况下,算法的时间复杂度是( )。A) O(n) B) O(n2) C) O(nlog2n) D) O(n3)
34、(121) 若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为( )。A) 38, 40, 46, 56, 79, 84 B) 40, 38, 46 , 79, 56, 84 C) 40, 38,46, 56, 79, 84 D) 40, 38, 46, 84, 56, 79(122) 下列关键字序列中,( )是堆。A) 16, 72, 31, 23, 94, 53 B) 94, 23, 31, 72, 16, 53 C) 16, 53, 23, 94,31, 72 D) 16, 23, 53, 31, 94, 72(123) 堆是一种( )排序。A) 插入 B) 选择 C) 交换 D) 归并(124) 堆的形状是一棵( )。 A) 二叉排序树 B) 满二叉树 C) 完全二叉树 D) 平衡二叉树(125) 若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用堆排序的方法建立的初始堆为( )。A) 79, 46, 56, 38, 40, 84 B) 84, 79, 56, 38, 40, 46 C) 84, 79, 56, 46, 40, 38 D) 84, 56, 79, 40, 46, 38 (126) 下述几种排序方法中,要求内存最大的是( )。A) 插入排序