全国计算机二级C选择题题库第34套
1、下列叙述中错误的是
A) 数据结构中的数据元素不能是另一数据结构
B) 数据结构中的数据元素可以是另一数据结构
C) 空数据结构可以是线性结构也可以是非线性结构
D) 非空数据结构可以没有根结点
参考答案:A
数据元素是一个含义很广泛的概念,它是数据的"基本单位",在计算机中通常作为一个整体进行考虑和处理。数据元素可以是一个数据也可以是被抽象出的具有一定结构数据集合,所以数据结构中的数据元素可以是另一数据结构。
满足有且只有一个根结点并且每一个结点最多有一个前件,也最多有一个后件的非空的数据结构认为是线性结构,不满足条件的结构为非线性结构。
空数据结构可以是线性结构也可以是非线性结构。非空数据结构可以没有根结点,如非性线结构"图"就没有根结点。
故选A选项。
2、为了降低算法的空间复杂度,要求算法尽量采用原地工作(in place)。所谓原地工作是指
A) 执行算法时所使用的额外空间固定(即不随算法所处理的数据空间大小的变化而变化)
B) 执行算法时所使用的额外空间随算法所处理的数据空间大小的变化而变化
C) 执行算法时不使用额外空间
D) 执行算法时不使用任何存储空间
参考答案:A
算法的空间复杂度是指执行这个算法所需要的内存空间,包括输入数据所占的存储空间、程序本身所占的存储空间、算法执行过程中所需要的额外空间。
如果额外空间量相对于问题规模(即输入数据所占的存储空间)来说是常数,即额外空间量不随问题规模的变化而变化,则称该算法是原地工作的。
故选A选项
3、某循环队列的存储空间为Q(1:m),初始状态为front=rear=m。现经过一系列的入队操作和退队操作后,front=m,rear=m-1,则该循环队列中的元素个数为
A) m-1
B) m
C) 1
D) 0
参考答案:A
循环队列长度为m,由初始状态为front=rear=m,可知此时循环队列为空。入队运算时,首先队尾指针进1(即rear+1),然后在rear指针指向的位置插入新元素。特别的,当队尾指针rear=m+1时,置rear=1。退队运算时,排头指针进1(即front+1),然后删除front指针指向的位置上的元素,当排头指针
front=m+1时,置front=1。
从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的
元素均为队列中的元素。如果rear-front>0,则队列中的元素个数为rear-front