数据结构栈和队列习题与答案.docx

上传人:b****5 文档编号:6100436 上传时间:2023-01-03 格式:DOCX 页数:10 大小:17.52KB
下载 相关 举报
数据结构栈和队列习题与答案.docx_第1页
第1页 / 共10页
数据结构栈和队列习题与答案.docx_第2页
第2页 / 共10页
数据结构栈和队列习题与答案.docx_第3页
第3页 / 共10页
数据结构栈和队列习题与答案.docx_第4页
第4页 / 共10页
数据结构栈和队列习题与答案.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

数据结构栈和队列习题与答案.docx

《数据结构栈和队列习题与答案.docx》由会员分享,可在线阅读,更多相关《数据结构栈和队列习题与答案.docx(10页珍藏版)》请在冰豆网上搜索。

数据结构栈和队列习题与答案.docx

数据结构栈和队列习题与答案

一、单选题

1、元素A、B、C、D依次进栈后,栈顶元素是_______。

A.B

B.D

C.C

D.A

正确答案:

B

2、经过以下运算后,x的值是_______。

InitStack(s);Push(s,a);Push(s,b);Pop(s,x);GetTop(s,x)

A.0

B.b

C.a

D.1

正确答案:

C

3、经过以下栈运算后,StackEmpty(s)的值是_______。

InitStack(s);Push(s,a);Push(s,b);Pop(s,x);Pop(s,y)

A.0

B.b

C.a

D.1

正确答案:

D

4、已知一个栈的进栈序列是ABC,出栈序列为CBA,经过栈的操作是_______。

A.push,push,push,pop,pop,pop

B.push,pop,push,push,pop,pop

C.push,push,pop,pop,push,pop

D.push,pop,push,pop,push,pop

正确答案:

A

5、若元素a、b、c、d、e、f依次进栈,允许进栈、退栈的操作交替进行,但不允许连续3次退栈工作,则不可能得到的出栈序列是_______。

A.bcaefd

B.afedcb

C.cbdaef

D.dcebfa

正确答案:

B

6、设一个栈的输入序列为A、B、C、D,则借助一个栈所得的输出序列不可能是_______。

A.DCBA

B.DABC

C.ACDB

D.ABCD

正确答案:

B

7、一个栈的进栈序列是abcde,则栈的不可能的输出序列是_______。

A.decba

B.abcde

C.dceab

D.edcba

正确答案:

C

8、已知一个栈的进栈序列是1,2,3,…n,其输出序列的第一个元素是i(1≤i≤n),则第j(1≤j≤n)个出栈元素是_______。

A.n-i

B.j-i+1

C.i

D.不确定

正确答案:

D

9、已知一个栈的进栈序列是1,2,3,…n,其输出序列是p1,p2,…pn,若p1=n,则pi的值是_______。

A.不确定

B.n-i+1

C.n-i

D.i

正确答案:

B

10、设n个元素的进栈序列是p1,p2,…pn,其输出序列是1,2,3,…n,若pn=1,则pi(1≤i≤n-1)的值是_______。

A.不确定

B.i

C.n-i

D.n-i+1

正确答案:

D

11、设n个元素的进栈序列是1,2,3,…n,其输出序列是p1,p2,…pn,若p1=3,则p2的值是_______。

A.一定是1

B.以上都不对

C.不可能是1

D.一定是2

正确答案:

C

12、设n个元素的进栈序列是p1,p2,…pn,其输出序列是1,2,3,…n,若p3=1,则p1的值是_______。

A.不可能是2

B.不可能是3

C.一定是2

D.可能是2

正确答案:

A

13、设n个元素的进栈序列是p1,p2,…pn,其输出序列是1,2,3,…n,若p3=3,则p1的值是_______。

A.可能是2

B.不可能是1

C.一定是1

D.一定是2

正确答案:

A

14、设有5个元素的进栈序列是a,b,c,d,e,其输出序列是c,e,d,b,a,则该栈的容量至少是_______。

A.2

B.4

C.1

D.3

正确答案:

B

15、在数据处理过程中常需要保存一些中间数据,如果后保存的数据先处理,则使用_______来保存这些数据。

A.栈

B.队列

C.线性表

D.单链表

正确答案:

A

16、判定一个顺序栈st为(元素个数最多为MaxSize)空的条件为_______。

A.st.top==MaxSize

B.st.top!

=MaxSize

C.st.top!

=-1

D.st.top==-1

正确答案:

D

17、判定一个顺序栈st为(元素个数最多为MaxSize)为栈满的条件为_______。

A.st.top=-1

B.st.top!

=MaxSize-1

C.st.top!

==-1

D.st.top==MaxSize-1

正确答案:

D

18、表达式a*(b+c)-d的后缀表达式是_______。

A.abcd*+-

B.abc*+d-

C.-+*abcd

D.abc+*d-

正确答案:

D

19、若一个栈用数组data[1..n]存储,初始栈顶指针top为n+1,则以下元素x进入栈的正确操作是_______。

A.top--;data[top]=x;

B.top++;data[top]=x;

C.data[top]=x;top--;

D.data[top]=x;top++;

正确答案:

A

20、若一个栈用数组data[1..n]存储,初始栈顶指针top为n,则以下元素x进入栈的正确操作是_______。

A.top--;data[top]=x;

B.data[top]=x;top--;

C.top++;data[top]=x;

D.data[top]=x;top++;

正确答案:

B

21、若一个栈用数组data[1..n]存储,初始栈顶指针top为0,则以下元素x进入栈的正确操作是_______。

A.data[top]=x;top++;

B.data[top]=x;top--;

C.top--;data[top]=x;

D.top++;data[top]=x;

正确答案:

D

22、若一个栈用数组data[1..n]存储,初始栈顶指针top为1,则以下元素x进入栈的正确操作是_______。

A.top--;data[top]=x;

B.data[top]=x;top++;

C.top++;data[top]=x;

D.data[top]=x;top--;

正确答案:

B

23、链栈与顺序栈相比有一个明显的优点,即_______。

A.总是不会出现栈空的情况

B.删除操作更加方便

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

D.插入操作更方便

正确答案:

C

24、以下各链表均不带有头节点,其中最不合适用作链栈的链表是_______。

A.只有表头指针没有表尾指针的循环单链表

B.只有表尾指针没有表头指针的循环双链表

C.只有表尾指针没有表头指针的循环单链表

D.只有表头指针没有表尾指针的循环双链表

正确答案:

A

25、如果以链表作为栈的存储结构,则退栈操作时_______。

A.判断链栈元素的类型

B.对链栈不做任何判断

C.必须判断链栈是否空

D.必须判断链栈是否为满

正确答案:

C

26、向一个不带头节点的栈顶指针为lst的链栈中插入一个s所指向节点时,则执行_______。

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

B.lst->next=s;

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

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

正确答案:

C

27、从一个不带头节点的栈顶指针为lst的栈链中删除一个节点时,用x保存被删节点的值,则执行_______。

A.x=lst->data;lst=lst->next;

B.x=lst;lst=lst->next;

C.lst=lst->next;x=lst->data;

D.x=lst->data

正确答案:

A

28、栈和队列的不同点是_______。

A.都不是线性表

B.没有不同点

C.都是线性表

D.栈只能在一端进行插入删除操作,而队列在不同端进行插入删除操作

正确答案:

D

29、经过下列运算后,队头的元素是_______。

InitQueue(qu);Enqueue(qu,‘a’);EnQueue(qu,‘b’);EnQueue(qu,‘c’);DeQueue(qu);

A.b

B.a

C.0

D.1

正确答案:

A

30、若某循环队列有队首指针front和队尾指针rear,在队不满时进队操作仅会改变_______。

A.front

B.rear

C.以上都不对

D.front和rear

正确答案:

B

31、循环队列qu的队满条件(front队首指针指向队首元素的前一位置,rear队尾指针指向队尾元素)是_______。

A.(qu.rear+1)%maxsize==qu.front+1

B.(qu.rear+1)%maxsize==qu.front

C.qu.rear==qu.front

D.(qu.rear+1)%maxsize==(qu.front+1)%maxsize

正确答案:

B

32、设循环队列中数组的下标是0~N-1,其队头、队尾指针分别为f和r(f指向队首元素的前一位置,r指向队尾元素),则元素个数为_______。

A.r-f

B.r-f-1

C.(r-f)%N+1

D.(r-f+N)%N

正确答案:

D

33、最适合用做链队列的不带表头节点的链表是_______。

A.带首节点指针和尾节点指针的循环单链表

B.只带尾节点指针的非循环单链表

C.只带尾节点指针的循环单链表

D.只带首节点指针的非循环单链表

正确答案:

C

34、假设用一个不带表头节点的单链表表示队列,在进行删除操作时,_______。

A.仅修改尾指针

B.仅修改头指针

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

D.头、尾指针都要修改

正确答案:

C

35、假设用一个不带头节点的单链表表示队列,队头和队尾指针分别为front和rear,则判断队空的条件是_______。

A.front==NULL

B.rear!

==NULL

C.front==rear

D.front!

==NULL

正确答案:

A

36、最不合适用做链队的不带头节点的链表是_______。

A.只带队首节点指针的循环双链表

B.以上都不合适

C.只带队首节点指针的非循环单链表

D.只带队尾节点指针的循环双链表

正确答案:

C

37、假设用qu[0..M]实现循环队列,f、r分别为队首元素的前一个位置和队尾位置。

若用“(r+1)%(M+1)==f”作为队满的标志,则_______。

A.队列中最多可以有M+1个元素

B.可用“f==r”作为队空的标志

C.可用“(f+1)%(M+1)==r”作为队空的标志

D.可用“f>r”作为队空的标志

正确答案:

B

38、若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别是0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别是_______。

A.4和2

B.2和4

C.1和5

D.5和1

正确答案:

B

二、判断题

1、栈底元素是不能删除的元素。

(×)

2、顺序栈中元素值的大小是有序的。

(×)

3、n个元素依次进栈,它们的出栈顺序和进栈顺序一定正好相反。

(×)

4、栈顶元素和栈底有可能是同一元素。

(√)

5、若用s[0..m-1]表示顺序栈的存储空间,则对栈的进栈、出栈操作最多只能进行m次;(×)

6、栈是一种对进栈、出栈操作总次数做了限制的线性表。

(×)

7、栈是一种对进栈、出栈操作的次序做了限制的线性表。

(×)

8、对顺序栈进行进栈、出栈操作,不涉及元素的前、后移动问题。

(√)

9、空栈没有栈顶指针。

(×)

10、栈和队列都是限制存取端的。

(√)

11、队列是一种对进队、出队操作的次序做了限制的线性表。

(×)

12、若用“队首指针的值和队尾指针的值相等”作为循环顺序队为空的标识,则在设置一个空队列时,只需给队首指针和队尾指针赋同一个值,在顺序表地址范围内不管什么值都可以。

(√)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1