栈和队列

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

栈和队列

一、单项选择题(共59题)

1. 假定一个链式队列的队首和队尾指针分别用front和rear表示,每个结点的结构为:

,当出列时所进行的指针操作为()

A. front = front->next;

B. rear = rear->next;

C. front->next = rear; rear = rear->next;

D. front = front->next; front->next = rear;

答案:A

2. 向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行()。

A. HS->next = s;

B. s->next = HS->next; HS->next = s;

C. s->next = HS; HS = s;

D. s->next = HS; HS = HS->next;

答案:C

3. 假定一个带头结点的循环链式队列的队首和队尾指针分别用front和rear表示,则判断队空的条件为()。

A. front == rear >next

B. rear == NULL

C. front == NULL

D. front == rear

答案:D

4. 若让元素1, 2, 3, 4依次进栈,则出栈次序不可能出现()的情况。

A. 3, 2, 1, 4

B. 2, 1, 4, 3

C. 4, 3, 2, 1

D. 1, 4, 2, 3

答案:D

5. 假定一个顺序循环队列存储于数组a[N]中,其队首和队尾指针分别用f和r表示,则判断队满的条件为()。

A. (r - 1) % N == f

B. (r + l) % N == f

C. (f - 1) % N == r

D. (f + l) % N == r

答案:B

6. 假定利用数组a[N]循环顺序存储一个队列,用f和r分别表示队首和队尾指针,并已知

队未空,当出列并返回队首元素时所执行的操作为()

A. return a[++r % N];

B. return a[--r % N];

C. return a[++f % N];

D. return a[f++ % N];

答案:C

7. 假定利用数组a[N]顺序存储一个栈,用top表示栈顶指针,用top==N+l表示栈空,该数组所能存储的栈的最大长度为N,则表示栈满的条件为()

A. top == 1

B. top == 1

C. top == 0

D. top > 1

答案:A

8. 假定一个链式栈的栈顶指针用top表示,该链式栈为空的条件为()

A. top != NULL;

B. top == top->next;

C. top == NULL;

D. top != top->next;

答案:C

9. 判定一个循环队列Q(最多元素为M)为满队列的条件是()。

A. (Q->rear + 1) % M == Q->front

B. Q->rear - Q->front - 1 == M

C. Q->front == Q->rear

D. Q->front == Q->rear + 1

答案:A

10. 栈和队列的共同特点是()。

A. 都是先进先出

B. 都是先进后出

C. 只允许在端点处插入和删除元素

D. 没有共同点

答案:C

11. 用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时()。

A. 仅修改队头指针

B. 仅修改队尾指针

C. 队头、队尾指针都要修改

D. 队头、队尾指针都可能要修改

答案:A

12. 在一个长度为N的数组空间中,循环顺序存储着一个队列,该队列的队首和队尾指针分别用front和rear表示,则该队列中的元素个数为()

A. (rear - front) % N

B. (rear - front + N) % N

C. (rear + N) % N

D. (front + N) % N

答案:B

13. 如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是()。

A. e3,e1,e4,e2

B. e2,e4,e3,e1

C. e3,e4,e1,e2

D. 以上均有可能

答案:D

14. 栈的插入和删除操作在()进行。

A. 栈顶

B. 栈底

C. 任意位置

D. 指定位置

答案:A

15. 假定一个链式队列的队首和队尾指针分别为front和rear,则判断队空的条件为()

A. front == rear

B. front != NULL

C. rear != NULL

D. front == NULL

答案:D

16. 假定一个带头结点的循环链式队列的队首和队尾指针分别用front和rear表示,每个结点包含值域data和指针域next,则使P所指结点入列所执行的操作为()

A. p->next = NULL; rear = rear->next = p;

B. p->next = rear->next; rear = rear->next = p;

C. p->next = front; front = p;

D. p->next = front->next; front->next = p;

答案:B

17. 在一个顺序循环队列中,队首指针指向队首元素的()位置。

A. 前一个

B. 后一个

C. 当前

D. 最后

答案:A

18. 对于循环队列,下列叙述中正确的是()。

A. 队首指针是固定不变的

B. 队首指针一定大于队尾指针

C. 队首指针一定小于队尾指针

D. 队首指针可以大于队尾指针,也可以小于队尾指针

答案:D

相关文档
最新文档