考点1数据结构与算法.docx
《考点1数据结构与算法.docx》由会员分享,可在线阅读,更多相关《考点1数据结构与算法.docx(33页珍藏版)》请在冰豆网上搜索。
考点1数据结构与算法
1.下列叙述中正确的是()。
答案:
B
A)所谓算法就是计算方法
B)程序可以作为算法的一种描述方法
C)算法设计只需考虑得到计算结果
D)算法设计可以忽略算法的运算时间
题目解析:
算法是一组有穷指令集,是解题方案的准确而完整的描述。
通俗地说,算法就是计算机解题的过程,重在解题方案的设计,并且不等于计算方法,故A和C选项不正确,程序的编制不可能优于算法的设计,但算法的描述可以用程序、伪代码、流程图来描述,故B选项正确。
算法要求执行过程中所需要的基本运算次数和时间最少,即时间复杂度最低,所以C选项不正确。
正确答案为B。
2.下列各序列中不是堆的是()。
答案:
C
A)(91,85,53,36,47,30,24,12)
B)(91,85,53,47,36,30,24,12)
C)(47,91,53,85,30,12,24,36)
D)(91,85,53,47,30,12,24,36)
题目解析:
堆可以看成一棵完全二叉树:
任一根节点>=左右孩子(或者<=)(大的叫大根堆,小的叫小根堆。
)注意一个堆中的这种性质有一致性,不能既有大于又有小于情况存在,这题可以这么做,把结点按照完全二叉树画出来就一目了然了。
这个题目很明显91是最大的根,而C选项是"左根右"的排序,那么91的左边只有47,其他都在右边,而右边无法按照此顺序排列,故选C。
3.深度为5的完全二叉树的结点数不可能是()。
答案:
A
A)15
B)16
C)17
D)18
题目解析:
对于满二叉树,叶子结点的数目等于2(n-1),n为深度,这里就是2的5-1=4次方,就是16。
4.设二叉树如下:
则前序序列为()。
答案:
A
A)ABDEGCFH
B)DBGEAFHC
C)DGEBHFCA
D)ABCDEFGH
题目解析:
前序遍历首先访问根结点然后遍历左子树,最后遍历右子树;在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。
故正确选项选A;B选项为中序遍历。
C选项为后序遍历;D选项不正确。
5.下列叙述中正确的是()。
答案:
A
A)循环队列是顺序存储结构
B)循环队列是链式存储结构
C)循环队列是非线性结构
D)循环队列的插入运算不会发生溢出现象
题目解析:
循环队列属于队列的特例和栈同属于线性结构,C选项不正确。
在顺序队列中,由于数组空间不够而产生的溢出叫真溢出;顺序队列因多次入队列和出队列操作后出现的有存储空间但不能进行入队列操作的溢出称为假溢出;假溢出是由于队尾rear的值和队头front的值不能由所定义数组下界值自动转为数组上界值而产生的,解决的办法是把顺序队列所使用的存储空间构造成一个逻辑上首尾相连的循环队列,因此,顺序队列通常都采用顺序循环队列结构;栈的存储方式有顺序存储和链式存储,故正确选项为A;B选项不正确。
循环队列虽然能解决由于假溢出,却不能解决在顺序队列中,由于数组空间不够而产生的溢出的真溢出,故选项C不正确。
6.下列叙述中正确的是()。
答案:
D
A)所有数据结构必须有根结点
B)所有数据结构必须有终端结点(即叶子结点)
C)只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构
D)没有根结点或没有叶子结点的数据结构一定是非线性结构
题目解析:
只有一个空节点的结构也属数据结构,所以A和B选项不正确;有且只有一个根结点,每一个结点最多有一个前件,也最多有一个后件的数据结构才属于线性结构,其它的都属于非线性结构,故C选项不正确,正确选项为D。
7.下列关于算法的描述中错误的是()。
答案:
D
A)算法强调动态的执行过程,不同于静态的计算公式
B)算法必须能在有限个步骤之后终止
C)算法设计必须考虑算法的复杂度
D)算法的优劣取决于运行算法程序的环境
题目解析:
算法的优劣取决自身的运行效率,时间和空间复杂度高低,并不取决于运行算法程序的环境,故D选项错误。
8.设二叉树如下:
则中序序列为()。
答案:
B
A)ABDEGCFH
B)DBGEAFHC
C)DGEBHFCA
D)ABCDEFGH
题目解析:
中序遍历(LDR)是指首先遍历左子树,然后访问根结点,最后遍历右子树;故正确答案为B。
9.线性表的链式存储结构与顺序存储结构相比,链式存储结构的优点有()。
答案:
B
A)节省存储空间
B)插入与删除运算效率高
C)便于查找
D)排序时减少元素的比较次数
题目解析:
顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。
优点:
存储密度大(=1),存储空间利用率高。
缺点:
插入或删除元素时不方便。
链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针优点:
插入或删除元素时很方便效率高,使用灵活。
缺点:
存储密度小(<1),存储空间利用率低。
故正确选项为B。
10.深度为7的完全二叉树中共有125个结点,则该完全二叉树中的叶子结点数为()。
答案:
B
A)62
B)63
C)64
D)65
题目解析:
对于满二叉树,结点的数目等于2n-1,叶子结点数目为2n-1,n为深度,这里就是2的7次方-1,就是127个结点,叶子结点是64个,然而题目中只有125个结点,说明少了两个结点,那么就少了一个叶子结点,即63个。
11.下列叙述中正确的是()。
答案:
C
A)所谓有序表是指在顺序存储空间内连续存放的元素序列
B)有序表只能顺序存储在连续的存储空间内
C)有序表可以用链接存储方式存储在不连续的存储空间内
D)任何存储方式的有序表均能采用二分法进行查找
题目解析:
有序表可以用顺序存储空间内连续存放的元素序列来实现,也可以用链接存储方式存储在不连续的存储空间内,已达到逻辑上连续,存储空间上不一定连续的效果。
二分法进行查找只适用于顺序存储的有序表。
故选项C正确。
12.设二叉树如下:
则后序序列为()。
答案:
C
A)ABDEGCFH
B)DBGEAFHC
C)DGEBHFCA
D)ABCDEFGH
题目解析:
后序遍历(LRD)首先遍历左子树,然后访问遍历右子树,最后访问根结点。
故正确选项为C。
13.下列叙述中正确的是()。
答案:
B
A)结点中具有两个指针域的链表一定是二叉链表
B)结点中具有两个指针域的链表可以是线性结构,也可以是非线性结构
C)二叉树只能采用链式存储结构
D)循环链表是非线性结构
题目解析:
结点中尽管有两个指针域但没有分别指向两个不同的结点就不是二叉链表,故A选项不正确;二叉树是非线性结构,即每个数据结点至多只有一个前驱,但可以有多个后继。
它可采用顺序存储结构和链式存储结构,故C选项不正确;循环链表是在单链表中,将终端结点的指针域NULL改为指向表头结点或开始结点的线性结构,故D选项不正确;当结点中两个指针分别指向前驱结点和后继结点是为线性结构,当指向两个不同的前驱或后继结点时为非线性结构,故B选项正确。
14.设某二叉树中共有140个结点,其中有40个度为1的结点。
则()。
答案:
D
A)该二叉树中有51个叶子结点
B)该二叉树中有50个叶子结点
C)该二叉树中有51个度为2的结点
D)不可能有这样的二叉树
题目解析:
140个结点除去40个度为1的结点,说明有100个度为2的结点,而根据二叉树性质,这个数值无法得出故本题答案选D。
15.带链的栈与顺序存储的栈相比,其优点是()。
答案:
C
A)入栈与退栈操作方便
B)可以省略栈底指针
C)入栈操作时不会受栈存储空间的限制而发生溢出
D)以上都不对
题目解析:
带链的栈与顺序存储的栈相比优点是不受连续存储空间大小的限制,即不需考虑栈满的问题,故C选项正确。
16.某二叉树的前序序列为ABCD,中序序列为DCBA,则后序序列为()。
答案:
B
A)BADC
B)DCBA
C)CDAB
D)ABCD
题目解析:
在二叉树前序遍历中ABCD中A是根节点,二在后序遍历中根结点位于最后,所以正确答案为B。
17.某系统结构图如下所示
该系统结构图的最大扇入数是()。
答案:
A
A)n
B)1
C)2
D)3
题目解析:
系统结构图中的最大扇入数为系统图中进入某一节点的最大节点数,本系统图中功能n.1节点输出节点为功能1到功能n,所以系统结构图的最大扇入数为n,故正确选项为A。
18.下列关于算法复杂度叙述正确的是()。
答案:
B
A)最坏情况下的时间复杂度一定高于平均情况的时间复杂度
B)时间复杂度与所用的计算工具无关
C)对同一个问题,采用不同的算法,则它们的时间复杂度是相同的
D)时间复杂度与采用的算法描述语言有关
题目解析:
准确把握算法复杂度的概念。
19.设有栈S和队列Q,初始状态均为空。
首先依次将A,B,C,D,E,F入栈,然后从栈中退出三个元素依次入队,再将X,Y,Z入栈后,将栈中所有元素退出并依次入队,最后将队列中所有元素退出,则退队元素的顺序为()。
答案:
B
A)DEFXYZABC
B)FEDZYXCBA
C)FEDXYZCBA
D)DEFZYXABC
题目解析:
栈是一种特殊的线性表栈中的数据时按照先进后出或者是后进先出的规则进行的,队列是同栈不太相同的线性结构,进出顺序为先进先出的规则,根据题意要求本题正确答案为B选项。
20.下列叙述中正确的是()。
答案:
D
A)有两个指针域的链表称为二叉链表
B)循环链表是循环队列的链式存储结构
C)带链的栈有栈顶指针和栈底指针,因此又称为双重链表
D)结点中具有多个指针域的链表称为多重链表
题目解析:
结点中尽管有两个指针域但没有分别指向两个不同的结点就不是二叉链表,故A选项不正确;循环链表是在单链表中,将终端结点的指针域NULL改为指向表头结点或开始结点的线性结构,故B选项不正确;当结点中两个指针分别指向前驱结点和后继结点是为线性结构,当指向两个不同的前驱或后继结点时为非线性结构,故B选项正确。
双重链表的结点有两个指针,一个指向前驱,一个指向后继,从一个结点既可以向前也可以向后才是双重链表,故C选项不正确。
D选项正确。
21.某二叉树共有845个结点,其中叶子结点有45个,则度为1的结点数为()。
答案:
C
A)400
B)754
C)756
D)不确定
题目解析:
二叉树中,度为0的结点(即叶子节点)比度为2的结点多1个,而度为0、1、2的结点相加等于总结点数845,所以度为1的结点数为845-45-(45-1)=756。
22.深度为7的二叉树共有127个结点,则下列说法中错误的是()。
答案:
A
A)该二叉树有一个度为1的结点
B)该二叉树是满二叉树
C)该二叉树是完全二叉树
D)该二叉树有64个叶子结点
题目解析:
大家一定要记清楚这几个二叉树的性质。
23.下列叙述中正确的是()。
答案:
D
A)非线性结构只能采用链式存储结构
B)非线性结构只能用多重链表表示
C)所有数据结构既可以采用顺序存储结构,也可以采用链式存储结构
D)有的非线性结构也能采用顺序存储结构
题目解析:
链式存储方式即可用于表示线性结构,也可用于表示非线性结构,非线性结构也可以用连续存储空间顺序存储。
所以AB选项不正确在所有的数据结构中并非所有的结构都能用顺序存储结构和采用链式存储结构表示,故选项C不正确,D选项正确。
24.某二叉树的中序序列为BDCA,后序序列为DCBA,则前序序列为()。
答案:
C
A)DCBA
B)BDCA
C)ABCD
D)BADC
题目解析:
在二叉树后序遍历中DCBA中A是根节点,二在前序遍历中根结点位于首位,所以正确答案为B。
25.某系统结构图如下图所示
该系统结构图的最大扇出数是()。
答案:
D
A)1
B)2
C)3
D)n
题目解析:
系统结构图中的最大扇出数为系统图中某一节点输出的最大节点数,本系统图中某系统输出节点为功能1到功能n,所以系统结构图的最大扇入数为n,故正确选项为D。
26.设有序线性表的长度为n,则在有序线性表中进行二分查找,最坏情况下的比较次数为()。
答案:
D
A)n(n-1)/2
B)n
C)nlog2n
D)log2n
题目解析:
二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次,而顺序查找需要比较n次。
故正确选项为D。
27.某完全二叉树共有256个结点,则该完全二叉树的深度为()。
答案:
C
A)7
B)8
C)9
D)10
题目解析:
根据"二叉树的第i层至多有2^(i ?
1)个结点;深度为k的二叉树至多有2^k ?
1个结点(根结点的深度为1)".这个性质:
因为前九层的结点就有2^9-1=511个;而第九层的结点数是2^(9-1)=256。
28.设序列长度为n,在最坏情况下比较次数低于O(n2)的排序方法是()。
答案:
D
A)快速排序
B)直接插入排序
C)冒泡排序
D)希尔排序
题目解析:
大家一定要熟悉这几种排序方法的性质。
29.某二叉树的前序序列为ABCD,中序序列为BDCA,则该二叉树的深度为()。
答案:
A
A)4
B)3
C)2
D)不确定
题目解析:
首先还原二叉树,然后再次进行排序。
30.下列排序方法中,最坏情况下时间复杂度最低的是()。
答案:
D
A)冒泡排序
B)快速排序
C)希尔排序
D)堆排序
题目解析:
堆排序法,最坏情况需要O(nlog2n)次比较。
相比以上几种(除希尔排序法外),堆排序法的时间复杂度最小,故D选项正确。
31.设循环队列为Q(1:
m),初始状态为front=rear=m。
现经一系列入队与退队操作后,front=rear=m-1,则()。
答案:
D
A)该循环队列已空
B)该循环队列已满
C)该循环队列中有1个元素
D)该循环队列已空或已满
题目解析:
循环队列m=0表示队列空;s=1且front=rear表示队列满。
所以选项D正确。
32.设序列长度为n,在最坏情况下,时间复杂度为O(log2n)的算法是()。
答案:
A
A)二分法查找
B)顺序查找
C)分块查找
D)哈希查找
题目解析:
二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次,而顺序查找需要比较n次。
故正确选项为A。
33.某二叉树的深度为7,其中有64个叶子结点,则该二叉树中度为1的结点数为()。
答案:
A
A)0
B)1
C)2
D)63
题目解析:
2的7-1次方已经是64了,所以度为1的结点一定是0。
34.堆排序最坏情况下的时间复杂度为()。
答案:
B
A)O(n1.5)
B)O(nlog2n)
C)
D)O(log2n)
题目解析:
堆排序法,最坏情况需要O(nlog2n)次比较,堆排序法的时间复杂度最小,故B选项正确。
35.在线性表的链式存储结构中,其存储空间一般是不连续的,并且()。
答案:
C
A)前件结点的存储序号小于后件结点的存储序号
B)前件结点的存储序号大于后件结点的存储序号
C)前件结点的存储序号可以小于也可以大于后件结点的存储序号
D)以上都不对
题目解析:
链式存储结构使得节点在内存中不收位置的限制,结点存储号可以是任意的,并且能够保证逻辑上的线性关系。
故C选项正确。
36.某二叉树中有15个度为1的结点,16个度为2的结点,则该二叉树中总的结点数为()。
答案:
C
A)32
B)46
C)48
D)49
题目解析:
二叉树有一个性质是:
对任何二叉树,如果其终端结点数位n0,度为2的结点数为n2则n0=n2+1,所以度为0的一共有17个,总的结点数即时17+15+16=48个。
37.某系统结构图如下图所示
该系统结构图中最大扇入是()。
答案:
C
A)0
B)1
C)2
D)3
题目解析:
系统结构图中的最大扇入数为系统图中输入某一节点的最大节点数,本系统图中某系统输入节点为功能1到功能3n,所以系统结构图的最大扇入数为3,故正确选项为C。
38.下列叙述中正确的是()。
答案:
D
A)每一个结点有两个指针域的链表一定是非线性结构
B)所有结点的指针域都为非空的链表一定是非线性结构
C)循环链表是循环队列的链式存储结构
D)线性结构的存储结点也可以有多个指针
题目解析:
当结点中两个指针分别指向前驱结点和后继结点是为线性结构,当指向两个不同的前驱或后继结点时为非线性结构,指针域为非空的链表也可以是线性结构,链式存储方式即可用于表示线性结构,也可用于表示非线性结构。
故A、B、C选项不完全正确。
线性结构的存储结点可以由多个指针只有保证有且只有指向一个前驱结点和一个后继结点就是线性结构。
故D选项正确;。
39.在线性表的顺序存储结构中,其存储空间连续,各个元素所占的字节数()。
答案:
A
A)相同,元素的存储顺序与逻辑顺序一致
B)相同,但其元素的存储顺序可以与逻辑顺序不一致
C)不同,但元素的存储顺序与逻辑顺序一致
D)不同,且其元素的存储顺序可以与逻辑顺序不一致
题目解析:
线性表的顺序存储结构的两个特点
(1)线性表中所有元素所占的存储空间是连续的;
(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
另在线性表中数据元素所占的字节数都是一致的,所以正确选项为A。
40.设循环队列为Q(1:
m),其初始状态为front=rear=m。
经过一系列入队与退队运算后,
front=30,rear=10。
现要在该循环队列中作顺序查找,最坏情况下需要比较的次数为()。
答案:
D
A)19
B)20
C)m-19
D)m-20
题目解析:
二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次,而顺序查找需要比较n次。
已知循环队列为Q(1:
m),其初始状态为front=rear=m,而节点个数为m-(front-rear),且顺序查找的比较次数与实际节点个数一致,故正确选项为D。
41.某二叉树中共有935个结点,其中叶子结点有435个,则该二叉树中度为2的结点个数为()。
答案:
D
A)64
B)66
C)436
D)434
题目解析:
大家记住一个公式,n0=n2+1,所以n2有434个。
42.某系统结构图如下图所示
该系统结构图中最大扇出数是()。
答案:
C
A)1
B)23
C)3
D)4
题目解析:
系统结构图中的最大扇出数为系统图中某一节点输出的最大节点数,本系统图中某系统输出节点为功能1到功能3,所以系统结构图的最大扇入数为3,故正确选项为C。
43.算法的有穷性是指()。
答案:
A
A)算法程序的运行时间是有限的
B)算法程序所处理的数据量是有限的
C)算法程序的长度是有限的
D)算法只能被有限的用户使用
题目解析:
算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
有穷性是指算法程序的运行时间是有限的。
44.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。
答案:
D
A)快速排序
B)冒泡排序
C)直接插入排序
D)堆排序
题目解析:
在最坏的情况下,堆排序需要比较的次数为O(nlog2n),所以选择D.
45.下列关于栈的叙述正确的是()。
答案:
B
A)栈按"先进先出"组织数据
B)栈按"先进后出"组织数据
C)只能在栈底插入数据
D)不能删除数据
题目解析:
栈是按照"先进后出"的原则组织数据的,只能在栈顶插入或删除数据,所以选择B。
46.一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。
答案:
B
A)12345ABCDE
B)EDCBA54321
C)ABCDE12345
D)54321EDCBA
题目解析:
栈是先进后出的原则组织数据,所以入栈最早的最后出栈,所以选择B。
47.下列叙述中正确的是()。
答案:
D
A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D)循环队列中元素的个数是由队头指针和队尾指针共同决定
题目解析:
循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以A)错误;在循环队列中只需要队头指针与队尾两个指针来共同反映队列中元素的动态变化情况,所以B)与C)错误。
48.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。
答案:
C
A)O(n)
B)
C)
D)
题目解析:
当有序线性表为顺序存储时才能用二分法查找。
可以证明的是对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较O(nlog2n)次,而顺序查找需要比较n次。
49.下列叙述中正确的是()。
答案:
A
A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C)顺序存储结构能存储有序表,链式存储结构不能存储有序表
D)链式存储结构比顺序存储结构节省存储空间
题目解析:
链式存储结构既可以针对线性结构也可以针对非线性结构,所以B)与C)错误。
链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以D)错误。
50.在数据管理技术发展的三个阶段中,数据共享最好的是()。
答案:
C
A)人工管理阶段
B)文件系统阶段
C)数据库系统阶段
D)三个阶段相同
题目解析:
据管理发展至今已经历了三个阶段:
人工管理阶段、文件系统阶段和数据库系统阶段。
其中最后一个阶段结构简单,使用方便逻辑性强物理性少,在各方面的表现都最好,一直占据数据库领域的主导地位,所以选择C)。
51.下列叙述中正确的是()。
答案:
D
A)栈是"先进先出"的线性表
B)队列是"先进后出"的线性表
C)循环队列是非线性结构
D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
题目解析:
栈是先进后出的线性表,所以A)错误;队列是先进先出的线性表,所以B)错误;循环队列是线性结构的线性表,所以C)错误。
52.支持子程序调用的数据结构是()。
答案:
A
A)栈
B)树
C)队列
D)二叉树
题目解析:
栈支持子程序调用。
栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A)。
53.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。
答案:
C
A)10
B)8
C)6
D)4
题目解析:
根据二叉树的基本性质3:
在任意一棵二叉树中,度为0的叶子节点总是比度为2的节点多一个,所以本题中是5+1=6个。
54.下列排序方法中,最坏情况下比较次数最少的是()。
答案:
D
A)冒泡排序
B)简单选择排序
C)直接插入排序
D)堆排序
题目解析:
冒泡排序与简单插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是nlog2n。
55.下列叙述中正确的是()。
答案:
C
A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D)在栈中,栈中元素不会随栈底指针与栈顶指针的变化而动态变化
题目解析:
栈是先进后出的数据结构,在整个过程