算法基本概念1-16
1. 以下哪项陈述是正确的?
A.算法的执行效率与数据的存储结构无关。
B、算法的空间复杂度是指算法程序中指令(或语句)的数量。
C. 算法的有限性意味着算法必须能够在执行有限数量的步骤后终止。
D.以上三种描述都不正确
2. 一般可以使用哪些控制结构来组合算法?
A. 循环、分支、递归 B. 序列、循环、嵌套 C. 循环、递归、选择 D. 序列、选择、循环
3. 下列选项中,哪一项不是算法一般应具备的基本特征。
A. 确定性 B. 可行性 C. 无限 D. 有足够的信息
4. 在计算机中,算法指的是。
A. 查询方法 B. 处理方法 C. 准确完整地描述问题解决方案 D. 排序方法
5. 以下哪项陈述是正确的?
A. 如果一个算法的空间复杂度很大,那么它的时间复杂度也一定很大。
B. 如果一个算法的空间复杂度很大,那么它的时间复杂度一定很小。
C. 如果一个算法的时间复杂度很大,那么它的空间复杂度一定很小。 D. 以上三种说法均不正确。
6.算法分析的目的是。
A.找出数据结构的合理性 B.找出算法中输入与输出的关系
C. 分析算法的可理解性和可靠性 D. 分析算法的效率以进行改进
7. 以下哪项陈述是正确的?
A.算法的效率只与问题的大小有关,与数据的存储结构无关。
B. 算法的时间复杂度是指执行该算法所需的计算工作量。
C、数据的逻辑结构和存储结构是一一对应的。 D.算法的时间复杂度和空间复杂度肯定有关系。
8.算法手段的有限性。
A.算法程序的运行时间是有限的。 B.算法程序处理的数据量是有限的。
C.算法程序的长度有限。 D. 该算法只能由有限的用户使用。
9.算法的空间复杂度指的是。
A. 算法执行过程中所需的计算机存储空间 B. 算法处理的数据量
C. 算法程序中语句或指令的数量 D. 算法执行过程中所需的临时工作单元的数量
10.算法的时间复杂度指的是。
A. 执行算法所需的时间 B. 设计算法所需的工作量
C. 算法程序中语句或指令的数量 D. 算法执行过程中所需的基本操作的数量
11. 算法的时间复杂度通过以下公式来衡量
A. 执行算法所需的基本操作数 B. 执行算法所需的所有操作数
C. 算法程序的长度 D. 执行算法所需的时间
12、算法空间复杂度的测量方法为
A. 算法程序的长度 B. 执行算法所需的存储空间
C. 算法处理的数据量 D. 执行算法所需的工作单元
13.下列哪项陈述是正确的?
A. 算法就是程序。 B、设计算法时,只需要考虑数据结构的设计。
C. 设计算法时,只需要考虑结果的可靠性。 D. 以上三种说法均不正确。
14.下列哪项陈述是正确的?
A)算法的空间复杂度与算法处理的数据存储空间有关。
B) 算法的空间复杂度是指算法程序控制结构的复杂程度。
C) 算法的空间复杂度是指算法程序中指令的数量。
D) 压缩数据存储空间不会降低算法的空间复杂度。
15.下列哪项陈述是正确的?
A) 数据的存储结构会影响算法的效率。 B) 算法设计只需要考虑结果的可靠性。
C) 算法复杂度是指算法控制结构的复杂度。 D) 算法复杂度通过算法中的指令数量来衡量。
16.下列哪项陈述是正确的? C
A. 算法复杂度是指设计算法的难度。 B. 算法时间复杂度是指设计算法的工作量。
C.算法的复杂度包括时间复杂度和空间复杂度。 D.算法的复杂度是指算法控制结构的复杂度。
17. 以下哪项陈述是正确的?
A. 设计算法时,只需要考虑结果的可靠性即可。 B. 算法是一个程序。
C、设计算法时,只需要考虑数据结构的设计。 D、设计算法时必须考虑时间复杂度和空间复杂度。
线性结构、线性表、链表18-44
18.下列哪种数据结构不是线性数据结构?
A. 队列 B. 线性表 C. 二叉树 D. 堆栈
19、线性表的顺序存储结构和线性表的链接存储结构分别是。
A. 顺序存取的存储结构、顺序存取的存储结构 B. 随机存取的存储结构、顺序存取的存储结构
C. 随机访问的存储结构,随机访问的存储结构 D. 任意访问的存储结构,任意访问的存储结构
20.下列哪项陈述是正确的?
A. 一个逻辑数据结构只能有一个存储结构
B、数据的逻辑结构是线性结构,存储结构是非线性结构。
C、一个逻辑数据结构可以有多种存储结构,多种存储结构并不影响数据处理的效率。
D、一个逻辑数据结构可以有多种存储结构,多种存储结构影响数据处理的效率。
21.下列哪项描述是正确的?
A、线性链表是线性表的链接存储结构。 B. 栈和队列是非线性结构。
C. 双向链表是一种非线性结构。 D、只有根节点的二叉树是线性结构。
22.下列关于线性链表的说法哪一个是正确的?
A、各个数据节点的存储空间可以不连续,但它们的存储顺序和逻辑顺序必须一致。
B、各个数据节点的存储顺序和逻辑顺序可以不一致,但它们的存储空间必须是连续的。
C、插入和删除时,不需要移动表中的元素。 D. 以上三种说法均不正确。
23.下列哪项陈述是正确的?
A、数据的逻辑结构和存储结构必须一一对应。
B、由于计算机存储空间是向量存储结构,因此数据存储结构必须是线性结构。
C. 编程语言中的数组一般都是顺序存储结构。 因此,数组只能处理线性结构。
24、与线性表的顺序存储结构相比,链接存储结构的优点是( )
A. 节省存储空间 B. 插入和删除操作效率高 C. 易于查找 D. 减少排序时元素比较的次数
25.下列哪项陈述是正确的?
A、顺序存储结构的存储空间必须是连续的,链式存储结构的存储空间不一定是连续的。
B、顺序存储结构仅适用于线性结构,链式存储结构仅适用于非线性结构。
C、顺序存储结构可以存储有序列表,但链接存储结构不能存储有序列表。
D、链式存储结构比顺序存储结构节省存储空间。
26、在单链表中,添加头节点的目的是。
A. 实现便捷操作 B. 使单向链表至少有一个节点 C. 识别第一个节点在链表节点中的位置
D.说明单链表是线性表的链接存储实现
27. 以下哪项陈述是正确的?
A. 栈是“先进先出”的线性表 B. 队列是“先进先出”的线性表
C.循环队列是一种非线性结构。 D、有序线性表可以使用顺序存储结构,也可以使用链式存储结构。
28.下列哪项陈述是正确的?
A、线性表的链接存储结构需要与顺序存储结构相同的存储空间。
B、线性表的链接存储结构一般比顺序存储结构需要更多的存储空间。
C、线性表的链接存储结构一般比顺序存储结构需要更少的存储空间。
D. 以上三种说法均不正确。
29.下列数据结构中,哪一个是非线性结构。
A. 循环队列 B. 链式队列 C. 二叉树 D. 链式堆栈
30.下列哪项陈述是正确的?
A.具有多个根节点的数据结构不一定是非线性结构。 B、只有一个根节点的数据结构不一定是线性结构。
C. 循环链表是非线性结构 D. 双向链表是非线性结构
31.下列说法正确的是( )
A. 一个节点中有两个指针域的链表一定是二元链表。
B、一个节点中有两个指针字段的链表可以是线性结构,也可以是非线性结构。
C. 二叉树只能使用链接存储结构。 D. 循环链表是非线性结构。
32.下列哪项陈述是正确的?
A) 具有两个指针字段的链表必须是二叉树存储结构。 B) 具有多个指针字段的链表必须是非线性结构。
C) 具有多个指针字段的链表可以是线性结构。 D) 只有一个根节点的数据结构一定是线性结构。
33.下列哪项陈述是正确的?
A) 只有一个根节点和一个叶节点的结构一定是线性结构。
B) 只有一个根节点的树必须是线性结构或二叉树。
C) 非线性结构可以为空。 D) 任何没有根节点的东西一定是非线性结构。
34.下列哪项陈述是不正确的?
A) 具有多个根节点的结构必定是非线性结构。 B) 任何具有多个叶节点的事物都必须是非线性结构。
C) 非线性结构中至少有一个根节点。 D) 非线性结构中不能有根节点或叶节点。
35.下列链表中,哪一个具有非线性逻辑结构?
A. 双向链表 B. 链式堆栈 C. 二元链表 D. 循环链表
36.下列哪项陈述是正确的?
A. 每个节点最多有一个前件和最多一个后件的数据结构必须是线性结构。
B.只有一个根节点的数据结构一定是非线性结构
C、只有一个根节点的数据结构可以是线性结构,也可以是非线性结构。
D、只有一个根节点的数据结构一定是线性结构
37.下列哪项陈述是正确的?
A. 栈是一个先进先出的线性表。 B. 循环队列是一种非线性结构。 C. 队列是先进先出的线性表。
D、有序线性表可以使用顺序存储结构,也可以使用链式存储结构。
38.下列哪项陈述是正确的?
A. 队列是后进先出的线性列表 B. 堆栈是先进先出的线性列表
C. 栈和队列都是非线性结构。 D. 栈和队列都是线性结构。
39.下列哪项陈述是正确的?
A. 所有节点中具有多个指针字段的链表都必须是非线性结构。 B、能够顺序存储的数据结构必须是线性结构。
C. 链式堆栈和队列是线性结构。 D、所有存储空间不连续的链表都必须是非线性结构。
40.用链表来表示线性表的优点是。
A. 方便插入和删除操作。 B. 数据元素的物理顺序与逻辑顺序相同。 C. 比顺序存储消耗更少的存储空间。
D.方便随机访问
41.下列哪项陈述是正确的?
A、循环队列属于队列的链式存储结构。 B、非线性结构只能使用链式存储结构。
C.双向链表是二叉树的链接存储结构。 D.一些非线性结构也可以使用顺序存储结构。
42.下列哪项陈述是正确的?
A. 具有两个根节点的数据结构一定是非线性结构。 B、具有连续存储空间的数据结构一定是线性结构。
C、没有根节点的非空数据结构一定是线性结构。 D、存储空间不连续的数据结构一定是非线性结构。
43.设数据集D={1,2,3,4,5}。下列数据结构B=(D,R)中哪一个是非线性结构?
A) R={ (1,2), (2,3), (3,4), (4,5) } B) R={ (1,2), (2,3), (4,3) ), (3,5) }
C) R={ (5,4), (4,3), (3,2), (2,1) } D) R={ (2,5), (5,4), (3,2) ), (4,3) }
44.设数据集D={1,2,3,4,5,6}。下面哪个数据结构B=(D,R)是线性结构?
A) R={ (1,2), (2,3), (4,3), (4,5), (5,6) } B) R={ (1,2), (2,3) ), (3,4), (4,5), (6,5) }
C) R={ (5,4), (3,4), (3,2), (4,3), (5,6) } D) R={ (1,2), (2,3) ), (6,5), (3,6), (5,4) }
堆栈、队列、循环队列45-77
45. 栈和队列的共同点是。
A. 两者都是先进先出。 B. 两者都是先进先出。 C. 在端点处只允许插入和删除元素。 D. 没有任何共同点。
46.下列数据结构中,能够按照“先进后出”原则访问数据的有:
A. 循环队列 B. 堆栈 C. 队列 D. 二叉树
47、按照“后进先出”原则组织数据的数据结构是。
A. 队列 B. 堆栈 C. 双向链表 D. 二叉树
48、元素A、B、C、D从栈底到栈顶依次存储。 在第五个元素E入栈之前,可以将栈中的元素弹出,所以出栈顺序可以是。
A.ABCED B.DBCEA C.CDABE D.DCBEA
49. 堆栈的初始状态是空的。 现在将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后依次从栈中弹出。 元素从堆栈中弹出的顺序是。
A B C D
50.以下关于堆栈的说法哪一个是正确的?
A. 元素只能插入栈,不能删除。 B. 元素只能从栈中删除,不能插入。
C、栈是一种特殊的线性列表,只能在一端插入或删除元素。
D、栈是一种特殊的线性列表,只能在一端插入元素,在另一端删除元素。
51. 以下关于堆栈的说法哪一项是不正确的?
A. 栈是一个先进后出的线性表。 B. 栈只能顺序存储。
C、堆栈具有记忆功能。 D、对栈进行插入和删除操作时,不需要改变栈底指针。
52.下列哪项陈述是正确的?
A、在栈中,栈中的元素随着栈底指针和栈顶指针的变化而动态变化。
B、在栈中,栈顶指针保持不变,栈中的元素随着栈底指针的变化而动态变化。
C、在栈中,栈底指针保持不变,栈中的元素随着栈顶指针的变化而动态变化。
D. 以上三种说法均不正确。
53. 以下关于堆栈的哪些说法是正确的?
A、可以先删除栈顶的元素。 B. 栈顶元素可以最后删除。 C. 栈底的元素永远不能被删除。 D. 以上说法均不正确。
54、假设栈的存储空间为S(1:50),初始状态top=51。现在经过一系列正常的入栈和出栈操作后,top=20,那么栈中元素的个数为
A) 31 B) 30 C) 21 D) 20
55、假设栈的存储空间为S(1:60),初始状态top=61。现在经过一系列正常的入栈和出栈操作后,top=25,则栈中元素的个数为
A) 25 B) 26 C) 35 D) 36
56、假设栈的存储空间为S(1:50),初始状态top=0,现在经过一系列正常的入栈和出栈操作后,top=30,则栈中元素的个数为
A) 31 B) 30 C) 20 D) 19
57、假设栈的顺序存储空间为S(1:m),初始状态top=m+1,则栈中数据元素的个数为
A) 顶部-m+1 B) m-顶部+1 C) m-顶部 D) 顶部-m
58、假设栈的顺序存储空间为S(1:m),初始状态top=0,则栈中数据元素的个数为
A) 顶部 B) m-顶部+1 C) m-顶部 D) 顶部-m
59.下列哪项陈述是不正确的?
A) 无论是顺序栈还是链式栈,在操作过程中栈底指针都是固定的。
B) 链接堆栈的底部指针在操作过程中可能会发生变化。
C) 无论是顺序栈还是链式栈,在运行过程中栈顶指针是动态变化的。
D) 顺序栈的底部指针在操作过程中是固定的。
60. 以下关于堆栈的哪些说法是正确的?
A. 栈顶的元素必须是第一个压入栈的元素。 B. 栈底的元素必须是最后压入栈的元素。
C. 堆栈操作遵循先进后出的原则。 D) 以上三种说法都不正确。
61. 以下关于堆栈的哪些说法是正确的?
A. 单击堆栈上的“第一个”选择“组织数据” B. 只能在堆栈底部插入数据
C. 堆栈按照“先进后出”组织数据 D. 数据无法删除
62、假设栈的顺序存储空间为S(1: 50),初始状态top=0。现在经过一系列压入、出栈操作后,top=20,则当前栈的元素个数是
A.19 B.20 C.30 D.29
63、假设栈的顺序存储空间为S(1:m),初始状态为top=m+1。现在经过一系列的入栈和出栈操作,top=20,则栈中元素的个数当前堆栈是
Am-20 B.20 C.30 D.m-19
64、假设栈的顺序存储空间为S(0:49),栈底指针=49,栈顶指针top=30(指向栈顶元素)。则堆栈中元素的数量是
A.30 B.29 C.20 D.19
65. 下列关于队列的说法哪一项是正确的。
A. 队列中只能插入数据。 B. 数据只能从队列中删除。
C. 队列是先进先出的线性表。 D、队列是先进先出的线性表。
66. 以下关于队列的哪些说法是正确的?
A. 队列是一个非线性表。 B、队列按照“先进后出”的原则组织数据。
C. 队列删除队列末尾的数据。 D、队列按照“先进先出”的原则组织数据。
67.下列哪项陈述是正确的?
A、循环队列中有两个指针,头和尾。 因此,循环队列是一种非线性结构。
B、在循环队列中,只需要头指针就可以反映队列中元素的动态变化。
C、在循环队列中,只需要尾指针就可以反映队列中元素的动态变化。
D、循环队列的元素个数由队列的头指针和尾指针决定。
68.对于循环队列,下列说法正确的是。
A、队头指针固定。 B、队头指针必须大于队尾指针。
C、队头指针必须小于队尾指针。 D、队头指针可以大于队尾指针,也可以小于队尾指针。
69.下列哪项陈述是正确的?
A) 具有两个指针域的链表一定是二叉树的存储结构。 B) 循环队列是队列的一种存储结构。
C) 二分查找适用于任何存储方式的有序列表。 D) 所有二叉树都不适合顺序存储结构。
70、以下是与队列结构相关的:a
A. 先来先服务作业调度 B. 对数组元素的引用
C. 函数的递归调用 D. 多次循环的执行
71.下列说法正确的是 A
A、循环队列中元素的数量随着队列头指针和尾指针的变化而动态变化。
B、循环队列中元素的数量随着队列头指针的变化而动态变化。
C、循环队列中元素的数量随着队列尾指针的变化而动态变化。
72、循环队列的存储空间为Q(1:40),初始状态front=rear=40。经过一系列正常入队后
出队操作后,front=rear=15,然后有一个元素正常退出,那么循环队列中的元素个数为
A) 9 B) 14 C) 16 D) 39
73、循环队列的存储空间为Q(1:50),初始状态front=rear=50。经过一系列正常的入队和出队操作后,front=rear=25,然后插入另一个元素一般情况下,循环队列中的元素个数为
A) 51 B) 50 C) 49 D) 1
74、假设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现在经过一系列的入队和出队操作,front=15,rear=15,则数量循环队列中元素的个数为
A.16 B.0 或 35 C.20 D.15
75、设循环队列存储空间为Q(1:50)。 初始状态为front=rear=50,经过一系列的入队和出队操作,front=14,rear=19,则循环队列的元素数量为
A.6 B.46 C.45 D.5
76、设循环队列为Q(1:m),初始状态为front=rear=m。 现在经过一系列的入队和出队操作,front=rear=1,那么循环队列的元素个数就是a
A. 0 或 m B. 1 C. m-1 D. 2
77、设循环队列为Q(1:m),其初始状态为front=rear=m。 经过一系列的入队、离队操作后,front=15,rear=20。 现在我们需要找到循环队列中具有最大值的元素。 在最坏的情况下,需要的比较次数为b。
A.6 B.5 Cm-6 Dm-5