数据结构习题汇编03第三章栈和队列试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 栈和队列 试题
一、单项选择题
1. 栈的插入和删除操作在(
)进行。
A. 栈顶
B. 栈底
C. 任意位置
D. 指定位置
2. 当利用大小为 n 的数组顺序存储一个栈
时, 假定用 top ==n 表示栈空,
则向这个栈插入一个元素时, 首
先应执行( )语句修改 top 指针。
A. top++ ;
B. top -- ;
C. top = 0 ;
D. top ;
A. 3, 2, 1
B. 2, 1, 3
C. 3, 1, 2
4.
在一个顺序存储的循环队列中,队头指针指向队头元素的( )位置。
7. 假定一个顺序存储的循环队列的队头和队尾指针分别为 front 和 rear ,则判断队空的条件为( )。
A. front+1 == rear
B. rear+1 == front
C. front == 0
D. front == rear
ElemType base[MaxSize] ;
3. 若让元素 1,2,3 依次进栈,则出栈次序不可能出现(
)种情况。
D. 1, 3, 2
A. 前一个
B. 后一个
C. 当前
D. 后面
5. 当利用大小为 n 的数组顺序存储一个队列时,该队列的最大长度为(
)。
A. n-2
B. n-1
C. n
D. n+1
6. 从一个顺序存储的循环队列中删除一个元素时,需要
)。
A. 队头指针加一
C. 取出队头指针所指的元素
B. 队头指针减一
D. 取出队尾指针所指的元素
8. 假定一个链式队列的队头和队尾指针分别
为
A. front == rear C. rear != NULL
front 和 rear ,则判断队空的条件为( B. front != NULL
D. front == NULL
)。
9. 设链式栈中结点的结构为( data, link
指针 s 所指的结点,则应执行操作(
,且 top 是指向栈顶的指针。若想在链式栈的栈顶插入一
个由 )。
A. top->link = s
C. s->link = top
top = s
B. s->link = top->link ; top->link = s D. s->link = top ; top = top->link
10. 设链式栈中结点的结构为( data, link ),且 top 是指向栈顶的指针。若想摘除链式栈的栈顶结点,并
将被摘除结点的值保存到 x 中,则应执行操作( )。
A. x = top->data ; top = top->link ;
B. top = top->link
; x = top->data ;
C. x = top ; top = top->link
;
D. x = top->data ;
11. 设循环队列的结构是
#define MaxSize 100 typedef int ElemType; typedef struct {
int front, rear ;
} Queue;
若有一个Queue类型的队列Q,则判断队列满的条件应是语句()。
A. == ;
B. - == MaxSize ;
C. + == MaxSize ;
D. == +1) % MaxSize ;
12. 设循环队列的结构是
#define MaxSize 100 typedef int ElemType;
typedef struct {
ElemType base[MaxSize] ;
int front, rear ;
} Queue;
若有一个Queue类型的队列Q,则应用语句()计算队列元素个数。
A. - + MaxSize ) % MaxSize ;
B. - +1 ;
C. - -1 ;
D. - Qfront ;
13. 在做进栈运算时, 应先判断栈是否()
A. 空
B. 满
C. 上溢
D. 下溢
14. 为增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时, 应将两栈的()分
别设在这片内存空间的两端。
A. 长度
B. 深度
C. 栈顶
D. 栈底
15. 使用两个栈共享一片内存空间时,当()时,才产生上溢。
A. 两个栈的栈顶同时到达这片内存空间的中心点
B. 其中一个栈的栈顶到达这片内存空间的中心点
C. 两个栈的栈顶在这片内存空间的某一位置相遇
D. 两个栈均不空, 且一个栈的栈顶到达另一个栈的栈底
二、填空题
1. 栈是一种限定在表的一端插入和删除的线性表,它的特点是 _________ 。
2. 队列是一种限定在表的一端插入,在另一端删除的线性表,它的特点是 _________ 。
3. 队列的插入操作在_______ 进行,删除操作在_______ 进行。
4. 向一个顺序栈插入一个元素时,首先使 ______ 后移一个位置,然后把待插入元素写入到这个位置上。
5. 从一个顺序栈中删除元素时,需要将 ________ 前移一位位置。
6. 若设顺序栈的最大容量为MaxSize ,则判断栈满的条件是________ 。