栈和队列
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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