版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 下列叙述中正确的是A)所谓算法就是计算方法B)程序可以作为算法的一种描述方法C)算法设计只需考虑得到计算结果D)算法设计可以忽略算法的运算时间B【解析】算法是指对解题方案的准确而完整的描述,算法不等于数学上的计算方法,也不等于程序。算法设计需要考虑 可行性、确定性、有穷性与足够的情报,不能只考虑计算结 果。算法设计有穷性是指操作步骤有限且能在有限时间内完 成,如果一个算法执行耗费的时间太长,即使最终得出了正 确结果,也是没有意义的,。算法在实现时需要用具体的程序 设计语言描述,所以程序可以作为算法的一种描述方法。2. 下列关于算法的描述中错误的是A)算法强调动态的执行过程,不同于静态的计
2、算公式B)算法必须能在有限个步骤之后终止C)算法设计必须考虑算法的复杂度D)算法的优劣取决于运行算法程序的环境D【解析】算法设计不仅要考虑计算结果的正确性,还要考 虑算法的时间复杂度和空间复杂度。3. 下列叙述中正确的是A)算法的复杂度包括时间复杂度与空间复杂度B)算法的复杂度是指算法控制结构的复杂程度C)算法的复杂度是指算法程序中指令的数量D)算法的复杂度是指算法所处理的数据量A【解析】算法复杂度是指算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。算法的复 杂度包括时间复杂度与空间复杂度。算法的时间复杂度是指 执行算法所需要的计算工作量;算法的空间复杂度是指算法 在
3、执行过程中所需要的内存空间。4. 下列叙述中正确的是A)算法的时间复杂度与计算机的运行速度有关B)算法的时间复杂度与运行算法时特定的输入有关C)算法的时间复杂度与算法程序中的语句条数成正比D)算法的时间复杂度与算法程序编制者的水平有关B【解析】为了能够比较客观地反映出一个算法的效率,在度 量一个算法的工作量时,不仅应该与所使用的计算机、程序 设计语言以及程序编制者无关,而且还应该与算法实现过程 中的许多细节无关。为此,可以用算法在执行过程中所需基 本运算的执行次数来度量算法的工作量。算法所执行的基本 运算次数还与问题的规模有关;对应一个固定的规模,算法 所执行的基本运算次数还可能与特定的输入有
4、关。5. 下列叙述中正确的是A)解决同一个问题的不同算法的时间复杂度一般是不同的B)解决同一个问题的不同算法的时间复杂度必定是相同的C)对同一批数据作同一种处理,如果数据存储结构不同,不 同算法的时间复杂度肯定相同D)对同一批数据作不同的处理,如果数据存储结构相同,不 同算法的时间复杂度肯定相同A【解析】解决同一个问题的不同算法的时间复杂度,可能相同也可能不相同。算法的时间复杂度与数据存储结构无关, 对同一批数据作同一种处理或者不同处理,数据存储结构相 同或者不同,算法的时间复杂度都可能相同或者不同。6. 下列叙述中正确的是A)算法的空间复杂度是指算法程序中指令的条数B)压缩数据存储空间不会降
5、低算法的空间复杂度C)算法的空间复杂度与算法所处理的数据存储空间有关D)算法的空间复杂度是指算法程序控制结构的复杂程度C【解析】算法的空间复杂度是指算法在执行过程中所需要的 内存空间。算法执行期间所需的存储空间包括3个部分:输入数据所占的存储空间;程序本身所占的存储空间;算法执 行过程中所需要的额外空间。7. 为了降低算法的空间复杂度,要求算法尽量采用原地工作(in place。所谓原地工作是指A)执行算法时不使用额外空间B)执行算法时不使用任何存储空间C)执行算法时所使用的额外空间随算法所处理的数据空间大 小的变化而变化D)执行算法时所使用的额外空间固定(即不随算法所处理的 数据空间大小的变
6、化而变化)D【解析】对于算法的空间复杂度,如果额外空间量相对于 问题规模(即输入数据所占的存储空间)来说是常数,即额 外空间量不随问题规模的变化而变化,则称该算法是原地工 作的。8. 下列叙述中正确的是A)算法的复杂度与问题的规模无关B)算法的优化主要通过程序的编制技巧来实现C)对数据进行压缩存储会降低算法的空间复杂度D)数值型算法只需考虑计算结果的可靠性C【解析】在许多实际问题中,为了减少算法所占的存储空间, 通产采用压缩存储技术,以便尽量减少不必要的额外空间。9. 下列叙述中正确的是A)数据的存储结构会影响算法的效率B)算法设计只需考虑结果的可靠性C)算法复杂度是指算法控制结构的复杂程度D
7、)算法复杂度是用算法中指令的条数来度量的A【解析】采用不同的存储结构,其数据处理的效率是不同的。 因此,在进行数据处理时,选择合适的存储结构很重要。10. 下列叙述中错误的是A)数据结构中的数据元素可以是另一数据结构B)数据结构中的数据元素不能是另一数据结构C)空数据结构可以是线性结构也可以是非线性结构D)非空数据结构可以没有根结点B【解析】数据元素是一个含义很广泛的概念,它是数据的“基 本单位”,在计算机中通常作为一个整体进行考虑和处理。数 据元素可以是一个数据也可以是被抽象出的具有一定结构数 据集合,所以数据结构中的数据元素可以是另一数据结构。 满足有且只有一个根结点并且每一个结点最多有一
8、个前件, 也最多有一个后件的非空的数据结构认为是线性结构,不满 足条件的结构为非线性结构。空数据结构可以是线性结构也 可以是非线性结构。非空数据结构可以没有根结点,如非性 线结构“图”就没有根结点。11. 下列叙述中正确的是A)非线性结构可以为空B)只有一个根结点和一个叶子结点的必定是线性结构C)只有一个根结点的必定是线性结构或二叉树D)没有根结点的一定是非线性结构A【解析】如果一个非空的数据结构满足下列两个条件:有且只有一个根结点;每一个结点最多有一个前件,也最多 有一个后件。则称该数据结构为线性结构。如果一个数据结 构不是线性结构,则称之为非线性结构。线性结构和非线性 结构都可以是空的数据
9、结构。树只有一个根结点,但不论有 几个叶子结点,树都是非线性结构。12. 下列叙述中错误的是A)向量是线性结构B)非空线性结构中只有一个结点没有前件C)非空线性结构中只有一个结点没有后件D)具有两个以上指针域的链式结构一定属于非线性结构D【解析】双向链表每个结点有两个指针,一个为左指针, 用于指向其前件结点;一个为右指针,用于指向其后件结点, 再加上头指针,具有两个以上的指针,但双向链表属于线性 结构。非空线性结构中第一个结点没有前件,最后一个结点 无后件,其余结点最多有一个前件,也最多有一个后件。向 量也满足这个条件,属于线性结构。13. 设数据结构B=(D, R),其中D= a, b, c
10、, d, e, f R= (f, a), (d, b), (e, d), (c, e), (a, c) 该数据结构为A) 线性结构B) 循环队列C) 循环链表D) 非线性结构A【解析】数据的逻辑结构有两个要素:一是数据元素的集合, 通常记为D ;二是D上的关系,它反映了 D中各数据元素之 间的前后件关系,通常记为R。即一个数据结构可以表示成B= ( D,R)。其中B表示数据结构。为了反映D中各数据元素之间的前后件关系,一般用二元组来表示。例如,假设a与b是D中的两个数据,则二元组(a,b)表示a是b的前件, b是a的后件。本题中R中的根结点为f,元素顺序为 片厂 CT厂d b,满足线性结构的条
11、件。14设数据集合为D= 1, 2, 3, 4, 5 。下列数据结构B=(D, R) 中为非线性结构的是A) R= (2,5), (5,4), (3,1), (4,3) B) R= (1,2), (2,3), (3,4), (4,5) C) R= (1,2), (2,3), (4,3), (3,5) D) R= (5,4), (4,3), (3,2), (2,1) C【解析】A项中,R=(2,5),(5,4),(3,1),(4,3), 2为根结点,元 素顺序为2 5 43 1,属于线性结构;同理B项1为根结 点,元素顺序为1 2 3 4 5, D项5为跟结点,元素顺序 为5 4 3 2 1,均
12、为线性结构。C项中,元素3有两个前 件,属于非线性结构。15下列叙述中正确的是A) 矩阵是非线性结构B) 数组是长度固定的线性表C) 对线性表只能作插入与删除运算D) 线性表中各元素的数据类型可以不同B【解析】矩阵也是线性表,只不过是比较复杂的线性表。线 性表中各元素的数据类型必须相同。在线性表中,不仅可以 做插入与删除运算,还可以进行查找或对线性表进行排序等 操作。16在线性表的顺序存储结构中,其存储空间连续,各个元素 所占的字节数A不同,但元素的存储顺序与逻辑顺序一致B) 不同,且其元素的存储顺序可以与逻辑顺序不一致C) 相同,元素的存储顺序与逻辑顺序一致D) 相同,但其元素的存储顺序可以
13、与逻辑顺序不一致C【解析】在线性表的顺序存储结构中,其存储空间连续,各 个元素所占的字节数相同,在存储空间中是按逻辑顺序依次 存放的。17下列叙述中正确的是A) 能采用顺序存储的必定是线性结构B) 所有的线性结构都可以采用顺序存储结构C) 具有两个以上指针的链表必定是非线性结构D) 循环队列是队列的链式存储结构B【解析】所有的线性结构都可以用数组保存,即都可以采用 顺序存储结构。而反过来不可以,完全二叉树也能用数组保 存(按层次依次存放到数据元素中),但完全二叉树不属于非 线性结构。双向链表具有两个以上的指针,但属于线性结构。 循环队列是队列的顺序存储结构。18下列叙述中正确的是A) 在栈中,
14、栈顶指针的动态变化决定栈中元素的个数B) 在循环队列中,队尾指针的动态变化决定队列的长度C) 在循环链表中,头指针和链尾指针的动态变化决定链表的 长度D) 在线性链表中,头指针和链尾指针的动态变化决定链表的 长度A【解析】在栈中,通常用指针 top来指示栈顶的位置,用指 针bottom指向栈底。栈顶指针top动态反应了栈中元素的变 化情况。在循环队列中,队头指针和队尾指针的动态变化决 定队列的长度。链式存储结构中,各数据结点的存储序号是 不连续的,并且各结点在存储空间中的位置关系与逻辑关系 也不一致,故头指针和尾指针或栈顶指针无法决定链表长度。19. 设栈的顺序存储空间为 S(1:m),初始状
15、态为top=0。现经过 一系列正常的入栈与退栈操作后,top=m+1 ,则栈中的元素 个数为A) 0B) mC) 不可能D) m+1C【解析】栈为空时,栈顶指针top=0,经过入栈和退栈运算, 指针始终指向栈顶元素。初始状态为top=0,当栈满时top=m, 无法继续入栈,top值不可能为m+1。20. 设栈的存储空间为S(1:50)初始状态为top=-1。现经过一 系列正常的入栈与退栈操作后,top=30,则栈中的元素个数 为A) 20B) 19C) 31D) 30D【解析】栈的初始状态为top=-1表示栈为空(没有规定栈 中栈底必须是 0),经过一系列正常的入栈与退栈操作后 top=30,
16、则空间(1:30)中插入了元素,共 30个。21. 设栈的顺序存储空间为 S(1:m),初始状态为top=m+1,则 栈中的数据元素个数为A) top-m+1B) m-top+1C) m-topD) top-mB【解析】栈的初始状态top=m+1,说明栈空时top=m+1 (m 在栈底,1是开口向上的),入栈时栈顶指 针是减操作(top=top-1 ),退栈时栈顶指针是加操作(top=top+1 )。本题 可以假设栈中有x个元素,当x=0时,也就是栈中没有元素, 则top=m+1 ;当x=m时,也就是栈满,则top=1,由此可以 得出top=m+1-x,继而得出 m-top+1。22. 设栈的
17、顺序存储空间为 S(1:m),初始状态为top=m+1。现 经过一系列正常的入栈与退栈操作后,top=0,则栈中的元素 个数为A) 1B) mC) m+1D) 不可能D【解析】栈的初始状态为top=m+1,说明栈空时top=m+1, 入栈时栈顶指针是减操作 (top=top-1 ),退栈时栈顶指针是加 操作(top=top+1 )。栈满时top=1,说明栈中不能再进行入栈 操作,top=0的情况不会出现。23. 设栈的存储空间为S(1:m)初始状态为top=m+1。经过一 系列入栈与退栈操作后,top=1。现又要将一个元素进栈,栈 顶指针top值变为A) 0B) 发生栈满的错误C) mD) 2
18、B【解析】栈的初始状态为top=m+1,说明栈空时top=m+1, 入栈时栈顶指针是减操作 (top=top-1 ),退栈时栈顶指针是加 操作(top=top+1 )。栈满时top=1,说明栈中不能再进行入栈 操作(“上溢”错误)。24. 设栈的存储空间为S(1:m)初始状态为top=m+1。经过一 系列入栈与退栈操作后,top=m。现又在栈中退出一个元素后, 栈顶指针top值为A) 0B) m-1C) m+1D) 产生栈空错误C【解析】栈的顺序存储空间为 S(1: m),初始状态top=m+1, 所以这个栈是m在栈底,1是开口向上的。经过一系列入栈 与退栈操作后top=m,则栈中有1个元素,
19、若现在又退出一 个元素,那么栈顶指针下移一位,回到 m+1的位置。25设栈的存储空间为S(1:50)初始状态为top=51。现经过一 系列正常的入栈与退栈操作后,top=20,则栈中的元素个数 为A) 31B) 30C) 21D) 20A【解析】栈的初始状态top=51,故本栈是51在栈底,入栈 时栈顶指针是减操作(top=top-1 ),退栈时栈顶指针是加操 作(top=top+1 )。当top=20时,元素存储在(20:50)空间中, 因此共有50-20+仁31个元素。26. 下列处理中与队列有关的是A) 二叉树的遍历B) 操作系统中的作业调度C) 执行程序中的过程调用D) 执行程序中的循
20、环控制B【解析】队列是指允许在一端进行插入,而在另一端进行删 除的线性表。由于最先进入队列的元素将最先出队,所以队 列具有“先进先出”的特性,体现了“先来先服务”的原则。 操作系统中的作业调度是指根据一定信息,按照一定的算法,从外存的后备队列中选取某些作业调入内存分配资源并将新 创建的进程插入就绪队列的过程。执行程序中的过程调用一 般指函数调用,需要调用时候转入被调用函数地址执行程序, 与队列无关。执行程序中的循环控制是指算法的基本控制结 构,包括对循环条件的判定与执行循环体,与队列无关。二 叉树是一个有限的结点集合,二叉树的遍历是指不重复地访 问二叉树中的所有结点,与队列无关。27. 设有栈
21、S和队列Q,初始状态均为空。首先依次将 A,B,C,D,E,F入栈,然后从栈中退出三个元素依次入队,再将 X,Y,Z入栈后,将栈中所有元素退出并依次入队,最后将队列 中所有元素退出,则退队元素的顺序为A) DEFXYZABCB) FEDZYXCBAC) FEDXYZCBAD) DEFZYXABCB【解析】栈是一种特殊的线性表,它所有的插入与删除都限 定在表的同一端进行。队列是指允许在一端进行插入,而在 另一端进行删除的线性表。将A,B,C,D,E,F入栈后,栈中元素为ABCDEF,退出三个元素入队,队列元素为FED,将X,Y,Z 入栈后栈中元素为ABCXYZ,退栈全部入队后,队列元素为 FED
22、ZYXCBA 。28下列叙述中正确的是A) 循环队列是顺序存储结构B) 循环队列是链式存储结构C) 循环队列空的条件是队头指针与队尾指针相同D) 循环队列的插入运算不会发生溢出现象A【解析】循环队列是队列的一种顺序存储结构。在循环队列 中,在队列满和队列为空时,队头指针与队尾指针均相同; 当需要插入的数据大于循环队列的存储长度,入队运算会覆 盖前面的数据,发生溢出现象。29下列叙述中正确的是A) 在循环队列中,队尾指针的动态变化决定队列的长度B) 在循环队列中,队头指针和队尾指针的动态变化决定队列 的长度C) 在带链的队列中,队头指针与队尾指针的动态变化决定队 列的长度D) 在带链的栈中,栈顶
23、指针的动态变化决定栈中元素的个数 B【解析】在循环队列中,队头指针和队尾指针的动态变化决 定队列的长度。带链的栈和带链的队列均采用链式存储结构, 而在这种结构中,各数据结点的存储序号是不连续的,并且 各结点在存储空间中的位置关系与逻辑关系也不一致,故头 指针和尾指针或栈顶指针无法决定链表长度。30. 循环队列的存储空间为Q(1:50),初始状态为 front=rear=50。经过一系列正常的入队与退队操作后, front=rear=25 ,此后又插入一个元素,则循环队列中的元素个 数为A) 1,或50且产生上溢错误B) 51C) 26D) 2A【解析】循环队列长度为 50,由初始状态为fron
24、t=rear=50 可知此时循环队列为空。入队运算时,首先队尾指针rear进1(即rea叶1),然后在队尾指针rear指向的位置插入新元素。 当队尾指针rear=50+1时,置rear=1。退队运算时,排头指针 front进1 (即front+1),然后删除front指针指向的位置上的 元素,当排头指针 front=50+1 时,置 front=1。当 front=rear=25 时可知队列空或者队列满,此后又插入了一个元素,如果之 前队列为空,插入操作之后队列里只有一个元素;如果插入 之前队列已满(50个元素),执行插入则会产生溢出错误。31. 循环队列的存储空间为Q(1:40),初始状态为
25、 front=rear=40。经过一系列正常的入队与退队操作后, front=rear=15,此后又退出一个元素,则循环队列中的元素个 数为A) 14B) 15C) 40D) 39,或0且产生下溢错误D【解析】当front=rear=15时可知队列空或者队列满,此后 又退出一个元素,如果之前队列为空,退出操作会产生错误, 队列里有0个元素;如果退出之前队列已满(40个元素),执行 退出后,队列里还有39个元素。32设循环队列的存储空间为 Q(1:50),初始状态为 front=rear=50。现经过一系列入队与退队操作后, front=rear=1,此后又正常地插入了两个元素。最后该队列中 的
26、元素个数为A) 3B) 1C) 2D) 52C【解析】由front=rear=1可知队列空或者队列满,此后又可以 正常地插入了两个元素说明插入前队列为空,则插入后队列 元素个数为2。33. 设循环队列的存储空间为 Q(1:m),初始状态为空。现经过 一系列正常的入队与退队操作后,front=m,rear=m-1,此后 从该循环队列中删除一个元素,则队列中的元素个数为A) m-1B) m-2C) 0D) 1B【解析】从排头指针front指向的后一个位置直到队尾指针 rear指向的位置之间所有的元素均为队列中的元素。如果 rear-front>0,则队列中的元素个数为rear-front个;
27、如果rear-front<0,则队列中的元素个数为rear-front+m。该题中m-1<m,即rear-front<0,则该循环队列中的元素个数为(m-1)-m+m=m-1。此后从该循环队列中删除一个元素,则队列中的元素个数为m-1-1=m-2。34. 设循环队列的存储空间为 Q(1:m),初始状态为空。现经过 一系列正常的入队与退队操作后,front=m-1,rear=m,此后 再向该循环队列中插入一个元素,则队列中的元素个数为A) mB) m-1C) 1D) 2D【解析】该题中 m-1<m,即卩rear-front>0,则该循环队列中 的元素个数为 m- (
28、m-1) =1。此后从该循环队列中插入一个 元素,则队列中的元素个数为 1+1=2。35. 设循环队列为Q(1:m),其初始状态为front=rear=m。经过 一系列入队与退队运算后,front=30,rear=10o现要在该循环 队列中作顺序查找,最坏情况下需要比较的次数为A) 19B) 20C) m-19D) m-20D【解析】front=30 , rear=10, front>rear ,则队列中有 10-30+m=m-20个元素,在作顺序查找时,最坏情况下(最后 一个元素才是要找的元素或没有要查找的元素)比较次数为 m-20 次。36设循环队列的存储空间为 Q(1:m),初始状
29、态为front=rear=m。经过一系歹U正常的操作后,front=1,rear=m。为了在该队列中寻找值最大的元素,在最坏情况下需要的比 较次数为A) 0B) 1C) m-2D) m-1C【解析】该题中1<m,即rear-front>0,则该循环队列中的 元素个数为 m-1。此在该队列中寻找值最大的元素,在最坏 情况下需要的比较次数为m-1-仁m-2o37设循环队列的存储空间为 Q(1:50),初始状态为front=rear=50。经过一系列正常的操作后,front-仁rear。为了 在该队列中寻找值最大的元素,在最坏情况下需要的比较次 数为A) 48B) 49C) 1D) 0A
30、【解析】该题中 rear-front=front-1- front<0,则该循环队列 中的元素个数为 rear-front+50=front-1- front+50=49。在该队 列中寻找值最大的元素,在最坏情况下需要的比较次数为49-仁 48o38设循环队列的存储空间为 Q(1:50),初始状态为front=rear=50。经过一系列正常的操作后,front=rear-1。为了 在该队列中寻找值最大的元素,在最坏情况下需要的比较次 数为A) 1B) 0C) 49D) 50B【解析】该题中rear-front=rear- (rear-1)>0,则该循环队列 中的元素个数为rear-
31、front=rear- (rear-1) =1。因队列中只有1 个元素,故寻找值最大的元素不需要进行比较,即比较次数 为0o39线性表的链式存储结构与顺序存储结构相比,链式存储结 构的优点有A) 节省存储空间B) 插入与删除运算效率高C) 便于查找D) 排序时减少元素的比较次数B【解析】线性表的顺序存储结构称为顺序表,线性表的链式 存储结构称为链表,两者的优缺点如下表所示。类型优点缺点顺序表(1) 可以随机存取表中 的任意结点(2) 无需为表示结点间 的逻辑关系额外增加存 储空间(1) 插入和删除运算 效率低(2) 存储空间不便于 扩充(3) 不便于对存储空 间的动态分配链表(1) 在进行插入
32、和删除 运算时,只需要改变指 针即可,不需要移动元 素(2) 存储空间易于扩充 并且方便空间的动态分 配需要额外的空间(指针 域)来表示数据元素之 间的逻辑关系,存储密 度比顺序表低40. 下列结构中属于线性结构链式存储的是A) 双向链表B) 循环队列C) 二叉链表D) 二维数组A【解析】双向链表也叫双链表,是链表(采用链式存储结构) 的一种,它的每个数据结点中都有两个指针,分别指向直接 后继和直接前驱。循环队列是队列的一种顺序存储结构。二 叉链表和二维数组属于非线性结构。41. 在线性表的链式存储结构中,其存储空间一般是不连续的, 并且A) 前件结点的存储序号小于后件结点的存储序号B) 前件
33、结点的存储序号大于后件结点的存储序号C) 前件结点的存储序号可以小于也可以大于后件结点的存储 序号D) 以上三种说法均不正确C【解析】在线性表的链式存储结构中,各数据结点的存储序 号是不连续的,并且各结点在存储空间中的位置关系与逻辑 关系也不一致,因此前件结点的存储序号与后件结点的存储 序号之间不存在大小关系。42 .下列叙述中正确的是A) 结点中具有两个指针域的链表一定是二叉链表B) 结点中具有两个指针域的链表可以是线性结构,也可以是 非线性结构C) 循环链表是循环队列的链式存储结构D) 循环链表是非线性结构B【解析】结点中具有两个指针域的链表既可以是双向链表也 可以是二叉链表,双向链表是线
34、性结构,二叉链表属于非线 性结构。循环链表是线性链表的一种形式,属于线性结构, 采用链式存储结构,而循环队列是队列的一种顺序存储结构。 43.带链的栈与顺序存储的栈相比,其优点是A) 入栈与退栈操作方便B) 可以省略栈底指针C) 入栈操作时不会受栈存储空间的限制而发生溢出D) 所占存储空间相同C【解析】带链的栈就是用一个线性链表来表示的栈,线性链表不受存储空间大小的限制,因此入栈操作时不会受栈存储 空间的限制而发生溢出(不需考虑栈满的问题)。44 .下列叙述中正确的是A) 带链栈的栈底指针是随栈的操作而动态变化的B) 若带链队列的队头指针与队尾指针相同,则队列为空C) 若带链队列的队头指针与队
35、尾指针相同,则队列中至少有 一个元素D) 不管是顺序栈还是带链的栈,在操作过程中其栈底指针均 是固定不变的A【解析】由于带链栈利用的是计算机存储空间中的所有空闲 存储结点,因此随栈的操作栈顶栈底指针动态变化。带链的 队列中若只有一个元素,则头指针与尾指针相同。45.带链栈空的条件是A) top=bottom=NULLB) top=-1 且 bottom=NULLC) top=NULL 且 bottom=-1D) top=bottom=-1A【解析】在带链的栈中,只会出现栈空和非空两种状态。当 栈为空时,有top=bottom=NULL ;当栈非空时,top指向链 表的第一个结点(栈顶)。46在
36、带链栈中,经过一系列正常的操作后, 如果top=bottom , 则栈中的元素个数为A) 0 或 1B) 0C) 1D) 栈满A【解析】带链栈就是没有附加头结点、运算受限的单链表。 栈顶指针就是链表的头指针。如果栈底指针指向的存储单元 中存有一个元素,则当top=bottom时,栈中的元素个数为1 ; 如果栈底指针指向的存储单元中没有元素,则当top=bottom时,栈中的元素个数为 0°47.某带链栈的初始状态为top=bottom=NULL ,经过一系列正 常的入栈与退栈操作后,top=bottom=20。该栈中的元素个数 为A) 0B) 1C) 20D) 不确定B【解析】带链的
37、栈就是用一个单链表来表示的栈,栈中的每 一个元素对应链表中的一个结点。栈为空时,头指针和尾指 针都为NULL ;栈中只有一个元素时,头指针和尾指针都指 向这个元素。48某带链栈的初始状态为 top=bottom=NULL ,经过一系列正 常的入栈与退栈操作后,top=10 , bottom=20。该栈中的元素 个数为A) 0B) 1C) 10D) 不确定D【解析】带链的栈使用了链表来表示栈,而链表中的元素 存储在不连续的地址中,因此当 top=10,bottom=20时,不 能确定栈中元素的个数。49.带链队列空的条件是A) fro nt=rear=NULLB) fro nt=-1 且 rea
38、r=NULLC) front=NULL 且 rear=-1D) fro nt=rear=-1A【解析】带链的队列就是用一个单链表来表示的队列,队列中的每一个元素对应链表中的一个结点。队列空时,头指针 和尾指针都为NULL °50在带链队列中,经过一系列正常的操作后,如果front=rear, 则队列中的元素个数为A) 0B) 1C) 0 或 1D) 队列满C【解析】带链队列空时,头指针和尾指针都为NULL ;队列中只有一个元素时,头指针和尾指针都指向这个元素。51 某带链的队列初始状态为front=rear=NULL。经过一系列 正常的入队与退队操作后,front=rear=10 &
39、#176;该队列中的元素个 数为A) 0B) 1C) 1 或 0D) 不确定B【解析】带链队列空时,头指针和尾指针都为null;队列中只有一个元素时,头指针和尾指针都指向这个元素。52某带链的队列初始状态为front=rear=NULL。经过一系列 正常的入队与退队操作后,front=10, rear=5°该队列中的元素 个数为A) 4B) 5C) 6D) 不确定D【解析】带链的队列使用了链表来表示队列,而链表中的 元素存储在不连续的地址中,因此当front=10,rear=5时,不能确定队列中元素的个数。53. 下列叙述中错误的是A) 循环链表中有一个表头结点B) 循环链表是循环队
40、列的存储结构C) 循环链表的表头指针与循环链表中最后一个结点的指针均 指向表头结点D) 循环链表实现了空表与非空表运算的统一B【解析】循环链表是指在单链表的第一个结点前增加一个表 头结点,队头指针指向表头结点,最后一个结点的指针域的 值由NULL改为指向表头结点。循环链表是线性表的一种链 式存储结构,循环队列是队列的一种顺序存储结构。54. 从表中任何一个结点位置出发就可以不重复地访问到表中其他所有结点的链表是A) 循环链表B) 双向链表C) 单向链表D) 二叉链表A【解析】在循环链表中,所有结点的指针构成了一个环状链, 只要指出表中任何一个结点的位置,就可以从它出发不重复 地访问到表中其他所
41、有结点。55非空循环链表所表示的数据结构A) 有根结点也有叶子结点B) 没有根结点但有叶子结点C) 有根结点但没有叶子结点D) 没有根结点也没有叶子结点A【解析】循环链表表头结点为根结点,链表的最后一个结点 为叶子节点,虽然它含有一个指向表头结点的指针,但是表 头结点并不是它的一个后件。56.下列结构中为非线性结构的是A) 树B) 向量C) 二维表D) 矩阵A【解析】由定义可以知道,树为一种简单的非线性结构。在 数这种数据结构中,所有数据元素之间的关系具有明显的层 次特性。57某棵树中共有25个结点,且只有度为3的结点和叶子结点, 其中叶子结点有7个,则该树中度为3的结点数为A) 6B) 7C
42、) 8D) 不存在这样的树D【解析】根据题意,树中只有度为3的结点和叶子结点(7个),则度为3的结点有25-7=18个;又根据树中的结点数= 树中所有结点的度之和+1,设度为3的结点数为n,则3n+1=25, 得n=8 °两种方式得到的度为 3的结点数不同,故不存在这 样的树。58.某棵树的度为4,且度为4、3、2、1的结点个数分别为1、2、3、4,则该树中的叶子结点数为A) 11B) 9C) 10D) 8A【解析】设叶子结点数为 n,根据树中的结点数=树中所有 结点的度之和 +1,得 4X 1+3 X2+2 X 3+1 X 4+nx 0+1=21,则 n=21-1-2-3-4=11
43、°59设一棵树的度为3,共有27个结点,其中度为3, 2,0的 结点数分别为4 , 1, 10=该树中度为1的结点数为A) 11B) 12C) 13D) 不可能有这样的树B【解析】设度为1的结点数为n,根据树中的结点数=树中 所有结点的度之和 +1,得3X 4+2 X 1+1 x n+0 X 10+1=27,则 n=12。60设一棵度为3的树,其中度为2, 1, 0的结点数分别为3, 1, 6。该树中度为3的结点数为A) 1B) 2C) 3D) 不可能有这样的树A【解析】设树的结点数为 n,则度为3的结点数为 n-3-1-6=n-10,根据树中的结点数=树中所有结点的度之和+1 ,
44、得 3X(n-10) +2 X 3+1 X 1+0 X6+1=n,解得 n=11,则度为 3 的结点数为n-10=11-10=1。61设一棵树的度为3,其中没有度为2的结点,且叶子结点 数为5。该树中度为3的结点数为A) 3B) 1C) 2D) 不可能有这样的树C【解析】设树的结点数为 m,度为3的结点数为n,则度为 1的结点数为m-n-5,根据树中的结点数=树中所有结点的度 之和 +1,得 3X n +1 X( m-n-5) +5 X0+仁m,贝U n=2。62度为3的一棵树共有30个结点,其中度为3,1的结点个数 分别为3,4。则该树中的叶子结点数为A) 14B) 15C) 16D) 不可
45、能有这样的树B【解析】设叶子结点数为n,则度为2的结点数为30-3-4- n=23-n,根据树中的结点数=树中所有结点的度之和+1,得 3X 3+2 X( 23-n) +1 X 4+0 Xn+仁30,则 n=15。63. 设某棵树的度为3,其中度为2,1,0的结点个数分别为3,4,15则该树中总结点数为A) 不可能有这样的树B) 30C) 22D) 35A【解析】设树的总结点数为n,则度为3的结点数为n-3-4-15=n-22,根据树中的结点数=树中所有结点的度之和+1,得 3X( n-22) +2X 3+1 X 4+0 X15+1=n,贝U n=27.5,求 出的结点数不为整数,故不可能有这
46、样的树存在。64. 某二叉树共有845个结点,其中叶子结点有45个,则度为 1的结点数为A) 400B) 754C) 756D) 不确定C【解析】叶子结点有45个,根据在二叉树中度为 0的结点 (叶子结点)总比度为2的结点多一个,则度为2的结点数为44个,因此度为1的结点数为845-45-44=756个。65某二叉树中有15个度为1的结点,16个度为2的结点,则 该二叉树中总的结点数为A) 32B) 46C) 48D) 49C【解析】根据在二叉树中度为 0的结点(叶子结点)总比度 为2的结点多一个,得度为0的结点数为16+1=17个,故总 的结点数=17+15+16=48个。66. 某二叉树共
47、有730个结点,其中度为1的结点有30个,则 叶子结点个数为A) 1B) 351C) 350D) 不存在这样的二叉树D【解析】设叶子结点数为n,根据在二叉树中度为0的结点 (叶子结点)总比度为2的结点多一个,则度为2的结点数为n-1,n+n-1+30=730,得n=350.5。由于结点数只能为整数, 所以不存在这样的二叉树。67. 某二叉树中共有350个结点,其中200个为叶子结点,则 该二叉树中度为2的结点数为A) 不可能有这样的二叉树B) 150C) 199D) 149A【解析】叶子结点数为200,根据在二叉树中度为0的结点 (叶子结点)总比度为2的结点多一个,则度为2的结点数为199,
48、199+200>350,故不存在这样的二叉树。68. 某二叉树的深度为7,其中有64个叶子结点,则该二叉树 中度为1的结点数为A) 0B) 1C) 2D) 63A【解析】叶子结点有64个,根据在二叉树中度为 0的结点 (叶子结点)总比度为2的结点多一个,则度为2的结点数 为63个;又深度为m的二叉树最多有2m-1个结点,则该二 叉树最多有27-1 = 127个结点。64+63=127,因此该树不存在度 为1的结点。69. 深度为7的二叉树共有127个结点,则下列说法中错误的 是A) 该二叉树是满二叉树B) 该二叉树有一个度为1的结点C) 该二叉树是完全二叉树D) 该二叉树有64个叶子结点
49、B【解析】满二叉树满足深度为 m的二叉树最多有2m-1个结 点,本题中二叉树深度为 7且有127个结点,满足27-仁127, 达到最大值,故此二叉树为满二叉树,也是完全二叉树。满 二叉树第k层上有2-1结点,则该二叉树的叶子结点数为 27-1=64个。满二叉树不存在度为1的结点。70. 深度为5的完全二叉树的结点数不可能是A) 15B) 16C) 17D) 18A【解析】设完全二叉树的结点数为 n,根据深度为k的二叉 树至多有2-1个结点,再根据完全二叉树的定义可知,2k-1-1<n< 2k-1o本题中完全二叉树的深度为 5,则25-1-1<n < 25-1, 15&l
50、t;n< 31。因此,结点数不能为15o71. 某完全二叉树共有256个结点,则该完全二叉树的深度为A) 7B) 8C) 9D) 10C【解析】根据完全二叉树的性质: 具有n个结点的完全二叉 树的深度为log2n+1。本题中完全二叉树共有256个结点,则 深度为10256+仁8+仁9。72. 深度为7的完全二叉树中共有 125个结点,则该完全二叉 树中的叶子结点数为A) 62B) 63C) 64D) 65B【解析】在满二叉树的第k层上有2k-1个结点、且深度为 m 的满二叉树有2m-1个结点,则深度为6的满二叉树共有 26-1=63个结点,第6层上有26-1 =32个结点。本题是深度为7
51、 的完全二叉树,则前6层共有63个结点,第7层的结点数为 125-63=62个且全为叶子结点。由于第 6层上有32个结点, 第7层上有62个结点,则第6层上有1个结点无左右子树(该 结点为叶子结点)。因此,该完全二叉树中共有叶子结点 62+1=63 个。73. 在具有2n个结点的完全二叉树中,叶子结点个数为A) nB) n +1C) n-1D) n/2A【解析】由二叉树的定义可知,树中必定存在度为0的结点 和度为2的结点,设度为0结点有a个,根据度为0的结点(即叶子结点)总比度为 2的结点多一个,得度为 2的结点 有a-1个。再根据完全二叉树的定义, 度为1的结点有0个或 1个,假设度1结点为
52、0个,a+0+a-仁2n,得2a=2n-1,由于 结点个数必须为整数,假设不成立;当度为 1的结点为1个 时,a+1+a-仁2n,得a=n,即叶子结点个数为 n。74 .下列数据结构中为非线性结构的是A) 二叉链表B) 循环队列C) 循环链表D) 双向链表A【解析】二叉树的链式存储结构也称为二叉链表,二叉树是树的一种,属于非线性结构。75下列叙述中正确的是A) 非完全二叉树可以采用顺序存储结构B) 有两个指针域的链表就是二叉链表C) 有的二叉树也能用顺序存储结构表示D) 顺序存储结构一定是线性结构C【解析】在计算机中,二叉树通常采用链式存储结构,但对 于满二叉树和完全二叉树来说,可以按层进行顺
53、序存储。因 此A项错误,C项正确。虽然满二叉树和完全二叉树可以采 用顺序存储结构,但仍是一种非线性结构,因此D项错误。双向链表也有两个指针域,因此 B项错误。76有二叉树如下图所示:A) ABDEGCFHB) DBGEAFHCC) DGEBHFCAD) ABCDEFGHA【解析】前序遍历首先访问根结点,然后遍历左子树,最后 遍历右子树;在遍历左、右子树时,仍然先访问根结点,然 后遍历左子树,最后遍历右子树。故本题前序序列是ABDEGCFH 。中序遍历首先遍历左子树,然后访问跟结点,最后遍历右子 树;在遍历左、右子树时,仍然先遍历左子树,然后访问跟 结点,最后遍历右子树。故本题的中序序列是DBG
54、EAFHC后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点;在遍历左、右子树时,仍然先遍历左子树,然后遍历右 子树,最后访问根结点。故本题的后序序列是DGEBHFCA。77. 设二叉树的前序序列为 ABDEGHCFIJ,中序序列为 DBGEHACIFJ。则后序序列为A) JIHGFEDCBAB) DGHEBIJFCAC) GHIJDEFBCAD) ABCDEFGHIJB【解析】二叉树的前序序列为 ABDEGHCFIJ,由于前序遍 历首先访问根结点,可以确定该二叉树的根结点是A。再由中序序列为DBGEHACIFJ,可以得到结点 D、B、G、E、H 位于根结点的左子树上,结点 C、I、F、J
55、位于根结点的右子 树上。由于中序遍历和后序遍历都是先遍历左子树,故本题 后序遍历首先访问D结点;再由后序遍历是最后访问根结点, 故本题后序遍历最后访问的结点是根结点A。采用排除法可知,后续序列为DGHEBIJFCA。78. 某二叉树的中序遍历序列为 CBADE,后序遍历序列为 CBEDA,则前序遍历序列为A) CBADEB) CBEDAC) ABCDED) EDCBAC【解析】二叉树的后序遍历序列为CBEDA,由于后序遍历最后访问根结点,可以确定该二叉树的根结点是A。再由中序遍历序列为CBADE,可以得到子序列(CB)一定在左子 树中,子序列(DE)一定在右子树中。结点 C、B在中序序 列和后
56、序序列中顺序未变,说明结点B是结点C的父结点;结点D、E在中序序列和后序序列中顺序相反,说明结点D是结点E的父结点。因此该二叉树的前序遍历序列为ABCDE。79. 某二叉树的前序序列为 ABCDEFG,中序序列为 DCBAEFG,则该二叉树的深度(根结点在第 1层)为A) 2B) 3C) 4D) 5C【解析】二叉树的前序序列为 ABCDEFG,则A为根结点; 中序序列为DCBAEFG,可知结点D、C、B位于根结点的左 子树上,结点E、F、G位于根结点的右子树上。另外,结点B、C、D在前序序列和中序序列中顺序相反,则说明这三个 结点依次位于前一个结点的左子树上;结点E、F、G顺序未变,则说明这三个结点依次位于前一个结点的右子树上。故 二叉树深度为4。80. 设二叉树的前序序列与中序序列均为 ABCDEFGH,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企事业单位电气安全协议
- 矿山环保音乐项目施工合同样本
- 医师授权与医疗安全
- 深圳影视制作公司租赁合同模板
- 乡村物业管理员劳动合同模板
- 湖南省娱乐经纪人管理政策
- 活动帐篷租赁合同
- 水上乐园管理规章
- 别墅户外排球场施工协议
- 产品发布包车租赁合同
- 培训需求调研问卷
- 2023-2024年高二年级上学期期中试题:文言文阅读(解析版)
- 2024年留学机构项目资金筹措计划书代可行性研究报告
- 【六年级】上册道德与法治-(核心素养目标)9.1 知法守法 依法维权 第一课时 教案设计
- 2024年江苏苏州张家港市人社局招聘公益性岗位(编外)人员2人历年高频难、易错点500题模拟试题附带答案详解
- 2024年电梯安全总监安全员考试题参考
- 学习解读2024年《关于深化产业工人队伍建设改革的意见》课件
- 2024年中国汽车基础软件发展白皮书5.0-AUTOSEMO
- 车站调度员(高级)技能鉴定理论考试题及答案
- 浪潮人力岗在线测评题
- 期中 (试题) -2024-2025学年人教PEP版(2024)英语三年级上册
评论
0/150
提交评论