数据结构题目收录(十一)

1、抽象数据类型可以用____、数据关系和基本操作来定义。

  • A:数据元素
  • B:数据对象
  • C:原子类型
  • D:存储结构
解析

抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。它通常是指对数据的某种抽象,定义了数据的取值范围及其结构形式,以及对数据的操作的集合。
抽象数据类型一般可以由数据对象、数据关系及基本操作来定义。故选B。

答案:B

2、数据结构的说法中正确的是____。

  • A:数据结构的逻辑结构独立于其存储结构
  • B:数据结构的存储结构独立于该数据结构的逻辑结构
  • C:数据结构的逻辑结构唯一地决定了该数据结构的存储结构
  • D:数据结构仅由其逻辑结构和存储结构决定
解析

数据结构的存储结构是和相应的数据在内存中的物理地址之间的关系有关。而逻辑结构只是描述数据之间的关系(三大逻辑结构的一种)。
举例说明:
线性表(元素之间的逻辑关系是线性的)可以是顺序存储的方式,即所有元素相邻存放,在物理地址上是连续的(存储结构);
而对于链式存储的线性表,他的所有元素之间不一定是线性相连的,可能是第一个结点(元素)的地址为0x123,而第二个元素又出现在物理地址0x100上。
也就是说逻辑结构是线性的但是存储结构不一定就是线性的。

答案:A

3、以下与数据的存储结构无关的术语是____。

  • A:循环队列
  • B:线索树
  • C:栈
  • D:数组
解析

A、B选项均涉及存储结构。
C选项是单纯的逻辑结构。
D选项,顺序表定义了data数组和length长度,其中length长度显然不能表示存储结构,所以顺序表的存储结构必然通过data数组体现。

答案:C

4、某顺序存储的表格中有90000个元素,已按关键字升序排列,假定对每个元素进行查找的概率是相同的,且每个元素的关键字的值皆不相同。用顺序查找法查找时,平均比较次数约为____。

  • A:25000
  • B:30000
  • C:45000
  • D:90000
解析

顺序查找适用于查找顺序存储或链式存储的线性表,平均比较次数是N/2。

答案:C

5、若串S=“database”,其非空子串数目为____。

  • A:37
  • B:36
  • C:35
  • D:34
解析

长度为1,2,3,4,5,6,7,8的子串个数分别为:
8,7,6,5,4,3,2,1。
所以子串总个数:8+7+…+1=36。

这类题是有规律的:假设字符串长度为n,则
(1)空串为1个
(2)然后就是长度为1,2,3,…,n的子串个数分别为:n,(n-1),(n-2),…,1所以子串总个数为:1+n*(n+1)/2,显然这是个奇数。

但本题中因为长度为1的字符串有重复,所以长度为1的字符串个数为6,题目中要求的是非空子串,所以总数为34,选D。

答案:D

6、下列排序方法中,在最坏情况下,数据的交换效率最好的排序方法是____方法。

  • A:插入排序
  • B:快速排序
  • C:希尔排序
  • D:选择排序
解析

最坏情况下,A、B、C三种方法的时间复杂度都为O( n 2 n^2 n2),而选择排序法又可以分为直接选择和堆排序,若为堆排序,时间复杂度为O(n l o g 2 n log_{2}n log2n)。

答案:D

7、代码如下,其中n为正整数,则最后行的语句执行在最坏情况下的复杂度是____。

for (i = n-1; i>=1; i--)
	for(j=1; j<=i; j++)
		if	(A[j] > A[j+1])
			A[j]与A[j+1]交换
  • A:O(n)
  • B:O(nlog(n))
  • C:O( n 3 n^3 n3)
  • D:O( n 2 n^2 n2)
解析

最坏情况下,if判断语句满足,当外循环和内循环都同时进行时,for语句双重嵌套,最坏时间复杂度为O( n 2 n^2 n2)。

答案:D

8、若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为____。

  • A:顺序存储结构
  • B:链式存储结构
  • C:索引存储结构
  • D:散列存储结构
解析

散列存储,又称hash存储,是一种力图将数据元素的存储位置与关键码之间建立确定对应关系的查找技术。散列法存储的基本思想是:由节点的关键码值决定节点的存储地址。

答案:D

9、算法的时间复杂度是指____。

  • A:算法执行的绝对时间
  • B:随着问题规模n的增大,算法执行时间的增长趋势
  • C:算法中执行语句的条数
  • D:获得算法执行时间的复杂程度
解析

算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间度量记作T(n)=O(f(n))。它表述随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作时间复杂度。

答案:B

10、假设包含t个非零元素的稀疏矩阵A含有m行n列,并采用三元组顺序表压缩存储,其快速转置算法的时间复杂度为____。

  • A:O(m+t)
  • B:O(n+t)
  • C:O(m+n)
  • D:O(m*n)
解析

快速转置时:
1)初始化所有列的非零元素的个数统计为O(n);
2)统计每一列的非零元素个数(t);
3)接着求每一列第一个非零元素的首位置(n);
4)最后对每一个非零个数转置(t)。
总共时间:2*(n+t),于是,时间复杂度为:O(n+t)。

答案:B

学海无涯苦作舟

我的公众号

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一、选择 1.若结点的存储地址与其关键字之间存在某种函数关系,则称这种存储结构为( ) A.顺序存储结构 B.链式存储结构 C.线性存储结构 D.散列存储结构 2.在长度为100的顺序表的第10个位置上插入一个元素,元素的移动次数为( ) A.90 B.91 C.89 D.92 3.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( ) A.顺序表 B.用头指针表示的单循环链表C.用尾指针表示的单循环链表D.单链表 4.若进栈序列为c, a,b,则通过入出栈操作可能得到的a,b,c的不同排列个数为( ) A.4 B.5 C.3 D.2 5.为查找某一特定单词在文本中出现的位置,可应用的串运算是( ) A.插入 B.删除 C.串联接 D.子串定位 7.三维数组A[4][5][6]按行优先存储方法存储在内存中,若每个元素占2个存储单元,且数组中第一个元素的存储地址为120,则元素A[2][4][5]的存储地址为( ) A.296 B.298 C.300 D.302 6.下列陈述中正确的是( ) A.二叉树是度为2的有序树 B.二叉树中结点只有一个孩子时无左右之分 C.二叉树中必有度为2的结点D.二叉树中最多只有两棵子树,并且有左右之分 7.n个叶子的霍夫曼树结点总数为( ) A.2n B.2n-1 C.2n+1 D.不能确定 8.有向图的邻接矩阵中,每列元素之和为该顶点的( ) A.度 B.入度 C.出度 D.权值 9.100个结点完全二叉树高度是( ) A.9 B.10 C.11 D.12 10.n个顶点的无向完全图中含有向边的数目最多为( ) A.n-1 B.n C.n(n-1)/2 D.n(n-1) 11.已知一个有向图如右所示,则从顶点a出发进行深度优先偏历,不可能得到的DFS序列为( ) A.a d b e f c B.a d c e f b C.a d c b f e D.a d e f c b 12.在最好和最坏情况下的时间复杂度均为O(nlogn)且稳定的排序方法是( ) A.快速排序 O(n*n) B.堆排序 C.归并排序 D.基数排序 13.不可能生成右图所示二叉排序树的关键字序列是( ) A.4 5 3 1 2 B.4 2 5 3 1 C.4 5 2 1 3 D.4 2 3 1 5 14.平衡二叉树中任一结点的( ) A.左、右子树的高度均相同 B.左、右子树高度差的绝对值不超过1 C.左子树的高度均大于右子树的高度 D.左子树的高度均小于右子树的高度 15.在VSAM文件的控制区间中,记录的存储方式为( ) A.无序顺序 B.有序顺序 C.无序链接 D.有序链接 二、填空题 16.若一个算法中的语句频度为T(n)=3720n3/2+4nlogn,则算法的时间复杂度为________。 17.单链表中若在指针p所指的结点之后插入指针s所指结点,则可用下列两个语句实现该操作,是_s->next=p->next和_______ _。 18.假设以S和X分别表示进栈和退栈操作,则对输入序列a,b,c,d,e进行一系列栈操作SSXSXXSSXX之后,得到的输出序列为________。 19.串S=″I am a worker″的长度是________。 20.假设一10阶下三角矩阵按列优顺序压缩存储一维数组C中,则C数组的大小为________。 21.在n个结点的二叉链表中,有________个空指针。 22.对关键字序列(52,80,63,44,48,21)进行一趟简单选择排序之后得到的结果为________。 23.由10个结点构成的二叉排序树,在等概率查找的假设下,查找成功时的平均查找长度的最大值可能达到________,最小为 。 24头指针为f,尾指针为r的循环队列判断空的条件是 (r+1)%max==f 。 三、问答题 1.已知一个6行5列的稀疏矩阵中非零元的值分别为:9,41,6,8,-54,5和-8,它们在矩阵中的列号依次为:1,4,5,1,2,4和5,其行值依次为1,1,2,2,3和5。请写出该稀疏矩阵。 2.已知二叉树树T的先序遍历序列为ABCDE,中序遍历序列为CBDEA。请画出二叉树T。 3.对关键字序列(72,87,61,23,94,16,05,58)进行堆排序,使之按关键字递减次序排列。请写出排序过程中得到的初始堆和前三趟的序列状态。 初始堆:_94,87,。。。_______ 第1趟:{94},87,72,61,58,23,16,5 第2趟:{94,87},72,58,61,5, 23,16, 4.在关键字序列(07,12,15,18,27,32,41,92)中用二分查找法查找和给定值41相等的关键字,请写出查找过程中依次和给定值“41”比较的关键字。平均查找长度。 ASL=(1+2+3)/8= 霍夫曼树:给定若干关键字在某次通信中出现频率,要求构造霍夫曼树并求每个结点编码。a,b,c,d,e,f:2,5,7,8,12,30 关键字序列:4,7,11,14,49,54,散列函数H(key)=key%7,散列表长0。。6,线性探测法处理冲突,构造该散列表。 关键字序列: 14,7,11,4,49,54,写出直接插入排序,起泡排序,简单选择排序(快速排序)每趟结果。 初始序列:{14,7,11,4,49,54} 第一趟{4,7,11},14,{49,54} 第二趟:4,{7,11},14, 49,{54} 第三趟4,7,{11},14, 49,{54} 五、算法设计 .假设二叉树T采用如下定义的存储结构: typedef struct node { DataType data; struct node *lchild,*rchild; }BinTree;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员丶星霖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值