《(全)2024版数据结构考试内部题库含答案解析(全考点).docx》由会员分享,可在线阅读,更多相关《(全)2024版数据结构考试内部题库含答案解析(全考点).docx(15页珍藏版)》请在优知文库上搜索。
1、数据结构考试内部题库含答案解析(全考点)1、以下属于逻辑结构的是() A力厕序表 B:哈希表 C:有序表.D:单链表解析顺序表、哈希表和单链表是三种不同的数据结构,既描述逻辑结构,又描述存储结构和数据运算。而有序表是指关键字有序的线性表,仅描述元素之间的逻辑关系,它既可以链式存储,又可以顺序存储,故属于逻辑结构。答案:C2、链式存储设计时,结点内的存储单元地址()。 A:一定连续 B:一定不连续 C:不一定连续 D:部分连续,部分不连续解析链式存储设计时,各个不同结点的存储空间可以不连续,但结点内的存储单元地址必须连续。答案:A3、对于两种不同的数据结构,逻辑结构或物理结构一定不相同吗?数据的
2、运算也是数据结构的一个重要方面。对于两种不同的数据结构,它们的逻辑结构和物理结构完全有可能相同。比如二叉树和二叉排序树,二叉排序树可以采用二叉树的逻辑表示和存储方式,前者通常用于表示层次关系,而后者通常用于排序和查找。虽然它们的运算都有建立树、插入结点、删除结点和蛰找结点等功能,但对于二叉树和二叉排序树,这些运算的定义是不同的,以查找结点为例,二叉树的时间复杂度为0(n),而二叉排序树的时间复杂度为O(logZ)。4、试举一例,说明对相同的逻辑结构,同一种运算在不同的存储方式下实现时,其运算效率不同。线性表既可以用顺序存储方式实现,又可以用链式存储方式实现。在顺序存储方式下,在线性表中插入和删
3、除元素,平均要移动近一半的元素,时间复杂度为0(n);而在链式存储方式下,插入和删除的时间复杂度都是O(I)05、下面关于倒排文件的说法中正确的是一o A:倒排文件是对主关键字建立索引 B:倒排文件是对次关键字建立索引 C:倒排文件的优点是维护简单 D:采用倒排文件是为了节省存储空间解析倒排文件:用记录的非主属性(也叫副犍)来蛰找记录而组织的文件叫倒排文件,即次索引。倒排文件中包括了所有副键值,并列出了与之有关的所有记录主键值,主要用于复杂蛰询。倒排文件的优点是检索记录较快。特别是对某些询问,不用读取记录,就可得到解答。答案:B6、下列术语中,与数据的存储结构无关。 A:循环队列 B:堆栈.C
4、:散列表 D:单链表解析数据的存储结构有顺序存储、链式存储、索引存储和散列存储。栈是一种抽象数据类型,可采用顺序存储或链式存储,是一种逻辑结构。散列表和单链表表示几种数据结构,既描述逻辑结构,又描述存储结构。答案:B7、下面程序的时间复杂度为一ofor(i=lrs=0;in;i+)t=1;for(j=1;j=i;j+)t=t*j;s=s+t; A : 0(n)n2 B : 0().D:解析分析代码:内层循环执行i次,外层循环执行n次,i从1取到no得知执行最内层循环语句总次数为(1 + n) * n,即 0(2)o答案:B8、下面算法的时间复杂度是Voidfun(intn)int i = O,
5、s0;while(s0;j一)rintf(%8.2f,aj);).A:0(1)cf11.B:O(logZ).C:0(n)n2.D:0()解析函数体定义中出现数组,数组在初始化时需要分配空间,此时空间复杂度为0(n),所以选Co答案:C10、已知程序如下所示,程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息依次对应的是一OintS(intn)return(n=0)?0:S(n-l)+n;)voidmain()coutS(l)-S(O).B:S(O)-S(l)-main().C:main()-S(O)-S(l).D:S(l)-S(O)-main()解析程序都是从main函数开始的,进入
6、main函数后执行S(I),之后递归执行S(O)0答案:A1.下列函数的时间复杂度是一Ointfunc(intn)(int1=0sum=0;while(sumn)sum+=+i;returni;) A:O(log(n) B:O(G) C:O(n).D:O(nlog(n)解析sum+=+i/相当于w+i;sum=sum+io进行到第k趟循环,sum=Q+k)*k20(lk)*k2n,显然需要进行O(O)趟循环,因此这也是该函数的时间复杂度。答案:B2、从一个具有n个结点的单链表中检索其值等于X的结点时,在检索成功的情况下,需平均比较的结点个数是一O A:n/2 B:n C:(n+l)2 D:(n
7、-l)2解析由于单链表只能进行单向顺序查找,以从第一个节点开始查找为例,查找第m个节点需要比较的节点数f(m)=m,查找成功的最好情况是第一次就蛰找成功,只用比较1个节点,最坏情况则是最后才查找成功,需要比较n个节点。所以一共有n种情况,平均下来需要比较的节点为(1+2+3+.+(n-l)+n)n=(n+D2答案:C3、当n足够大时,下述函数中渐近时间最小的是一o.A:T(n)=nlog(n)-1000log(n) B:T(n)=nlog(3)-1000log(n)C:T(n)=D-1000log(n).D:T(n)=2nlog(n)-1000log(n)解析ABCD四个选项时间复杂度依次为O
8、(On)s0(n)xO(O)xO(nn)o所以n足够大时,时间复杂度最小的是0(n),选Bo答案:B4、倒排文件包含有若干个倒排表,倒排表的内容是A:一个关键字值和该关键字的记录地址.B:一个属性值和该属性的一个记录地址.C:一个属性值和该属性的全部记录地址D:多个关键字和它们相对应的某个记录的地址解析有倒排索引的文件我们称为倒排索引文件,简称倒排文件。倒排索引,也常被称为反向索引,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。答案:C5
9、、下述编码中不是前缀码的是.A:0,10,110,111.B:0l1z00z11.C:1,01,000x001.D:00,01,10,11)解析前缀编码是指对字符集进行编码时,要求字符集中任一字符的编码都不是其他字符的编码的前缀。选项B中0和00不符合前缀码要求。答案:B6、下面程序段的时间复杂度是oi=s=0;while(sn)i+;s+=i; A:O(log(n) B:O(G) C:0(n) D:O解析第一次执行完s+=is=l第二次S=3=1+2第三次s=6=1+2+3第四次S=IO=1+2+3+4第k次l+2+3+4+.+k=那么当口二n的时I矣停止,也就是k=口斤以复杂度是口。答案:
10、B7、在有向图中每个顶点的度等于该顶点的 A:入读B:出度.C:入读与出度之和.D:入读与出度之差解析在有向图中每个顶点的度等于该顶点的入度与出度之和。答案:C8、具有n个顶点的无向完全图有条边。.A:n B:n*(n-l)2.C:n*(nl)2 D:n*n2解析具有n个顶点的无向完全图有n*(n-l)2条弧答案:B9、下列程序段的时间复杂度是count=0;for(k=l;k=n;k*=2)for(j=l;j=n;j+)count+; A:_In).B:0(n) C:0(n) D:O解析内层循环条件j=n与外层循环的变量无关,各自独立。每执行一次j自增1每次内层循环都执行n次。外层循环条件k
11、=n,增量定义为k*=2,可知循环次数t满足k=O=n,即t=Ono即内层循环的时间复杂度为0(n),外层循环的时间复杂度为0(11)o对于嵌入循环,根据乘法规则可知,该程序的时间复杂度T(n)=D(n)*D(n)=O(n)*O(11n)=O(nn)o答案:C10、一个算法所需时间由下述递归方程表示,试求出该算法的时间复杂度的级别(或阶)。式中n是问题的规模,为简单起见,设n是2的整数次幕。解析设11=口(1口0),根据题目所给定义有T(O=2T(11)+11=11T(O+2CC,由止匕可得一般递推公式T(0)=Or(0)+i匚匚,进而得(G)=Ot(O+kCO=(ki)Gx即T(11)=2On+Onn=n(口n1),也就是O(nn)o