数据结构第三章栈与队列

判断题
1-1
若一个栈的输入序列为1,2,3,…,N,输出序列的第一个元素是i,则第j个输出元素是j−i−1。F
1-2
所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。F
1-3
在对不带头结点的链队列作出队操作时,不会改变头指针的值。F
1-4
不论是入队列操作还是入栈操作,在顺序存储结构上都需要考虑"溢出"情况。T
1-5
队列和栈都是运算受限的线性表,只允许在表的两端进行运算。F
1-6
栈和队列的存储方式,既可以是顺序方式,也可以是链式方式。T
1-7
循环队列也存在着空间溢出问题。T
1-8
循环队列执行出队操作时会引起大量元素的移动。F
1-9
栈是插入和删除只能在一端进行的线性表;队列是插入在一端进行,删除在另一端进行的线性表。T
1-10
在n个元素连续进栈以后,它们的出栈顺序和进栈顺序一定正好相反。F
1-11
环形队列中有多少个元素可以根据队首指针和队尾指针的值来计算。T
1-12
栈和队列的插入和删除操作特殊,所以,栈和队列是非线性结构。F
1-13
序列{1,2,3,4,5}依次入栈,则不可能得到{3,4,1,2,5}的出栈序列.T
1-14
队列中允许插入的一端叫队头,允许删除的一端叫队尾。F
选择题
2-1
若用大小为6的数组来实现循环队列,且当前front和rear的值分别为0和4。当从队列中删除两个元素,再加入两个元素后,front和rear的值分别为多少?

(2分)

A.
2和0

B.
2和2

C.
2和4

D.
2和6

2-2
如果循环队列用大小为m的数组表示,且用队头指针front和队列元素个数size代替一般循环队列中的front和rear指针来表示队列的范围,那么这样的循环队列可以容纳的元素个数最多为:

(2分)

A.
m-1

B.
m

C.
m+1

D.
不能确定

作者
DS课程组
单位
浙江大学
2-3
以下数据结构中,( )是非线性数据结构。

(1分)

A.

B.
字符串

C.
队列

D.

作者
周治国
单位
东北师范大学
2-4
设栈S和队列Q的初始状态均为空,元素{1, 2, 3, 4, 5, 6, 7}依次进入栈S。若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是{2, 5, 6, 4, 7, 3, 1},则栈S的容量至少是:

(2分)

A.
1

B.
2

C.
3

D.
4

作者
DS课程组
单位
浙江大学
2-5
线性表、堆栈、队列的主要区别是什么?

(1分)

A.
线性表用指针,堆栈和队列用数组

B.
堆栈和队列都是插入、删除受到约束的线性表

C.
线性表和队列都可以用循环链表实现,但堆栈不能

D.
堆栈和队列都不是线性结构,而线性表是

作者
DS课程组
单位
浙江大学
2-6
栈和队列的共同点( )。

(2分)

A.
都是先进先出

B.
都是后进先出

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

D.
没有共同点

作者
严冰
单位
浙大城市学院
2-7
下列关于线性表,栈和队列叙述,错误的是( )。

(2分)

A.
线性表是给定的n(n必须大于零)个元素组成的序列

B.
线性表允许在表的任何位置进行插入和删除操作

C.
栈只允许在一端进行插入和删除操作

D.
队列只允许在一端进行插入一端进行删除

作者
严冰
单位
浙大城市学院
2-8
设用一个数组A[1……N]来存储一个栈,令A[N]为栈底,用整型变量T指示当前栈顶位置,A[T]为栈顶元素。当从栈中弹出一个元素时,变量T的变化为( )。

(2分)

A.
T=T+1

B.
T=T-1

C.
T不变

D.
T=N

作者
严冰
单位
浙大城市学院
2-9
链式栈与顺序栈相比,一个比较明显的优点是( )。

(2分)

A.
插入操作更加方便

B.
通常不会出现栈满的情况

C.
不会出现栈空的情况

D.
删除操作更加方便

作者
严冰
单位
浙大城市学院
2-10
(neuDS)在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,它们分别指向队首元素和队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的长度是( )。

(2分)

A.
rear-front

B.
rear-front+1

C.
(rear-front+maxSize)%maxSize

D.
(rear-front+1)%maxSize

作者
徐婉珍
单位
广东东软学院
2-11
(nueDS_C++)设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5、e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、e1,则栈S的容量至少应该是(   )。提示:对于栈,可以全进再依次出;也可以进一个出一个;也可以进一部分,出一个,再进一部分;但是出栈之后,不能再入栈。

(2分)

A.
3

B.
4

C.
6

D.
2

作者
姚志军
单位
广东东软学院
2-12
关于栈和队列的下列说法正确的是()

(2分)

A.
栈的插入操作是在栈顶进行,插入时需将栈内所有元素后移;

B.
栈是后进先出的结构,出栈时除了栈顶元素,其余元素无需移动;

C.
循环队列的出队操作删除的是队头元素,采用循环队列存储时,其余队列元素均需要移动;

D.
链队列的入队操作在表尾进行,操作时间与队列长度成正比

作者
DS课程组
单位
临沂大学
2-13
一个栈的入栈序列是a,b,c,d,e,则栈的出栈序列不可能的是( )。

(1分)

A.
edcba

B.
decba

C.
dceab

D.
abcde

作者
赵玉霞
单位
滨州学院
2-14
在一个链表表示的队列中, f和r分别指向队列的头和尾。下列哪个操作能正确地将s结点插入到队列中:

(2分)

A.
f->next=s; f=s;

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

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

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

作者
王俊玲
单位
集美大学
2-15
栈和队列具有相同的。

(2分)

A.
抽象数据类型

B.
逻辑结构

C.
存储结构

D.
运算

作者
王东
单位
贵州师范学院
2-16
假定利用数组a[n]顺序存储一个栈,用top表示栈顶指针,用top==-1表示栈空,并已知栈未满,当元素x进栈时所执行的操作为( )。

(2分)

A.
a[–top]=x

B.
a[top–]=x

C.
a[++top]=x

D.
a[top++]=x

作者
王东
单位
贵州师范学院
2-17
队列的“先进先出”特性是指( )。

Ⅰ.最后插入队列中的元素总是最后被删除
Ⅱ.当同时进行插入、删除操作时,总是插入操作优先
Ⅲ.每当有删除操作时,总要先做一次插入操作
Ⅳ.每次从队列中删除的总是最早插入的元素

(2分)

A.

B.
Ⅰ、Ⅳ

C.
Ⅱ、Ⅲ

D.

作者
王东
单位
贵州师范学院
2-18
已知循环队列存储在一维数组A[0…n-1]中,且队列非空时front和rear分别指向队头元素和队尾元素。若初始时队列为空,且要求第一个进入队列的元素存储在A[0]处,则初始时front和rear的值分别是( )。

(2分)

A.
0,0

B.
0,n-1

C.
n-1,0

D.
n-1,n-1

作者
王东
单位
贵州师范学院
2-19
执行函数时,其局部变量一般采用( )进行存储。

(2分)

A.
树形结构

B.
静态链表

C.
栈结构

D.
队列结构

作者
王东
单位
贵州师范学院
2-20
对空栈 S 进行 Push 和 Pop 操作,入栈序列为 a, b, c, d, e,经过 Push, Push, Pop, Push, Pop, Push, Push, Pop 操作后,得到的出栈序列是:

(2分)

A.
b, a, c

B.
b, a, e

C.
b, c, a

D.
b, c, e

作者
考研真题
单位
浙江大学
2-21
用S表示入栈操作,X表示出栈操作,若元素入栈的顺序为1234,为了得到1342出栈顺序,相应的S和X的操作串为( )。

(2分)

A.
SXSSSXXX

B.
SXSXSXSX

C.
SSSSXXXX

D.
SXSSXSXX

填空题
4-1
栈的运算遵循
后进先出
的原则。
4-2
以下运算实现在链队上的入队列,请在空白处用适当句子予以填充。

void EnQueue(QueptrTp *lq,DataType x){
LqueueTp *p;
p=(LqueueTp *)malloc(sizeof(LqueueTp));
p->data=x;
p->next=NULL;
(lq->rear)->next=p;
lq->rear=p; }
4-3
以下运算实现在链栈上的初始化,请在空白处用请适当句子予以填充。

typedef struct Node{
DataType data;
struct Node *next;
}StackNode,*LStackTp;
void InitStack(LStackTp &ls){
top=-1;}。

你可能感兴趣的:(数据结构,栈,队列)