线性表和栈与队列——练习题

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

数据结构课程第三、四章练习题

一、单项选择题

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

A. 栈顶

B. 栈底

C. 任意位置

D. 指定位置

2.当利用大小为n的数组顺序存储一个栈时,假定用top==n表示栈空,则向这个栈插入一个元素时,

首先应执行()语句修改top指针。

A. top++;

B. top--;

C. top = 0;

D. top;

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

A. 3, 2, 1

B. 2, 1, 3

C. 3, 1, 2

D. 1, 3, 2

4.在一个顺序存储的循环队列中,队头指针指向队头元素的()位置。

A. 前一个

B. 后一个

C. 当前

D. 后面

5.当利用大小为n的数组顺序存储一个队列时,该队列的最大长度为()。

A. n-2

B. n-1

C. n

D. n+1

6.从一个顺序存储的循环队列Q中删除一个元素时,需要()。

A. Q->front= (Q->front-1)%Q->maxsize

B. Q->front= (Q->front+1)%Q->maxsize

C. Q->rear= (Q-> rear +1)%Q->maxsize

D. Q->rear= (Q-> rear -1)%Q->maxsize

7.假定一个顺序存储的循环队列的队头和队尾指针分别为front和rear,则判断队空的条件为()。

A. front+1 == rear

B. rear+1 == front

C. front == 0

D. front == rear

8.假定一个不带头结点的链式队列的队头和队尾指针分别为front和rear,则判断队空的条件为()。

A. front == rear

B. front != NULL

C. rear != NULL

D. front == NULL

9.设链式栈(带头结点)中结点的结构为(data, link),且top是指向栈顶的指针。若想在链式栈的栈顶插

入一个由指针s所指的结点,则应执行操作()。

A. top->link = s;

B.s->link = top->link;top->link = s;

C. s->link = top;top = 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.设循环队列的结构是

const int MaxSize = 100;

typedef int DataType;

typedef struct {

DataType data[MaxSize];

int front, rear;

} Queue;

若有一个Queue类型的队列Q,则判断队列满的条件应是语句()。

A. Q.front == Q.rear;

B. Q.front - Q.rear == MaxSize;

C. Q.front + Q.rear == MaxSize;

D. Q.front == (Q.rear+1) % MaxSize;

12.设循环队列的结构是

const int MaxSize = 100;

typedef int DataType;

typedef struct {

DataType data[MaxSize];

int front, rear;

} Queue;

若有一个Queue类型的队列Q,则应用语句()计算队列元素个数。

A. (Q.rear - Q.front + MaxSize ) % MaxSize;

B. Q.rear - Q.front +1;

C. Q.rear - Q.front -1;

D. Q.rear - Qfront;

13.在做进栈运算时,应先判断栈是否()

A. 空

B. 满

C. 上溢

D. 下溢

14.为增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时, 应将两栈的

()分别设在这片内存空间的两端。

A. 长度

B. 深度

C. 栈顶

D. 栈底

15.使用两个栈共享一片内存空间时,当()时,才产生上溢。

A. 两个栈的栈顶同时到达这片内存空间的中心点

B. 其中一个栈的栈顶到达这片内存空间的中心点

C. 两个栈的栈顶在这片内存空间的某一位置相遇

D. 两个栈均不空, 且一个栈的栈顶到达另一个栈的栈底

参考答案: 1. A 2. B 3. C 4. C 5. B

6. B

7. D

8. D

9. B 10. A

11. D 12. A 13. B 14. D 15. C

二、填空题

1.栈是一种限定在表的一端插入和删除的线性表,它的特点是________。

2.队列是一种限定在表的一端插入,在另一端删除的线性表,它的特点是________。

3.队列的插入操作在________进行,删除操作在________进行。

相关文档
最新文档