11.下列叙述中正确的是:
A、能采用顺序存储的必定是线性结构
B、所有的线性结构都可以采用顺序存储结构
C、具有两个以上指针的链表必定是非线性结构
D、循环队列是队列的链式存储结构
B【解析】所有的线性结构都可以用数组保存,即都可以采用顺序存储结构。而反过来不可以,完全二叉树也能用数组保存(按层次依次存放到数据元素中),但完全二叉树不属于非线性结构。双向链表具有两个以上的指针,但属于线性结构。循环队列是队列的顺序存储结构。
12.下列叙述中正确的是:
A、在栈中,栈顶指针的动态变化决定栈中元素的个数
B、在循环队列中,队尾指针的动态变化决定队列的长度
C、在循环链表中,头指针和链尾指针的动态变化决定链表的长度
D、在线性链表中,头指针和链尾指针的动态变化决定链表的长度
A【解析】在栈中,通常用指针 top 来指示栈顶的位置,用指针 bottom 指向栈底。栈顶指针 top 动
态反应了栈中元素的变化情况。在循环队列中,队头指针和队尾指针的动态变化决定队列的长度。链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致,故头指针和尾指针或栈顶指针无法决定链表长度。
13.设栈的存储空间为 S(1:50),初始状态为 top=-1。现经过一系列正常的入栈与退栈操作后,
top=30,则栈中的元素个数为:
A、20 B、19 C、31 D、30 加 QQ
D【解析】栈的初始状态为 top=-1 表示栈为空,经过一系列正常的入栈与退栈操作后 top=30,则空
间(1:30)中插入了元素,共 30 个。
14.设栈的顺序存储空间为 S(1:m),初始状态为 top=m+1,则栈中的数据元素个数为:
A、top-m+1 B、m-top+1 C、m-top D、top-m
B【解析】栈的初始状态 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,继而得出 x=m-top+1。
15.设栈的存储空间为 S(1:m),初始状态为 top=m+1。经过一系列入栈与退栈操作后,top=1。现又要将一个元素进栈,栈顶指针 top 值变为:
A、0 B、发生栈满的错误 C、m D、2
B【解析】栈的初始状态为 top=m+1,说明栈空时 top=m+1,入栈时栈顶指针是减操作(top=top-
1),退栈时栈顶指针是加操作(top=top+1)。栈满时 top=1,说明栈中不能再进行入栈操作(“上溢”错误)。
16.设栈的存储空间为 S(1:m),初始状态为 top=m+1。经过一系列入栈与退栈操作后,top=m。现又
在栈中退出一个元素后,栈顶指针 top 值为:
A、0 B、m-1 C、m+1 D、产生栈空错误
C【解析】栈的顺序存储空间为 S(1: m),初始状态 top=m+1,所以这个栈是 m 在栈底,1 是开口向
上的。经过一系列入栈与退栈操作后 top=m,则栈中有 1 个元素,若现在又退出一个元素,那么栈顶指针下移一位,回到 m+1 的位置。
17.下列叙述中正确的是:
A、循环队列是顺序存储结构
B、循环队列是链式存储结构
C、循环队列空的条件是队头指针与队尾指针相同
D、循环队列的插入运算不会发生溢出现象
A【解析】循环队列是队列的一种顺序存储结构。在循环队列中,在队列满和队列为空时,队头指针与队尾指针均相同;当需要插入的数据大于循环队列的存储长度,入队运算会覆盖前面的数据,发生溢出现象。
18.下列叙述中正确的是:
A、在循环队列中,队尾指针的动态变化决定队列的长度
B、在循环队列中,队头指针和队尾指针的动态变化决定队列的长度
C、在带链的队列中,队头指针与队尾指针的动态变化决定队列的长度
D、在带链的栈中,栈顶指针的动态变化决定栈中元素的个数加 QQ
B【解析】在循环队列中,队头指针和队尾指针的动态变化决定队列的长度。带链的栈和带链的队列均采用链式存储结构,而在这种结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致,故头指针和尾指针或栈顶指针无法决定链表长度。
19.循环队列的存储空间为 Q(1:50),初始状态为 front=rear=50。经过一系列正常的入队与退队操作后,front=rear=25,此后又插入一个元素,则循环队列中的元素个数为:
A、1,或 50 且产生上溢错误 B、51 C、26 D、2
A【解析】在循环队列运转起来后,当 front=rear=25 时可知队列空或者队列满,此后又插入了一个元素,如果之前队列为空,插入操作之后队列里只有一个元素;如果插入之前队列已满(50 个元素),执行插入则会产生溢出错误。
20.循环队列的存储空间为 Q(1:40),初始状态为 front=rear=40。经过一系列正常的入队与退队操作后,front=rear=15,此后又退出一个元素,则循环队列中的元素个数为:
A、14 B、15 C、40 D、39,或 0 且产生下溢错误
D【解析】在循环队列运转起来后,当 front=rear=15 时可知队列空或者队列满,此后又退出一个元素,如果之前队列为空,退出操作会产生错误,队列里有 0 个元素;如果退出之前队列已满(40 个元素),执行退出后,队列里还有39 个元素。