数据结构练习题之栈和队列

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

第三章栈和队列习题

一、选择题

1. 一个栈的入栈序列a,b,c,d,e,则栈的不可能的输出序列是( )

A. edcba

B. decba

C. dceab

D. abcde

2.一个队列的入队顺序是1,2,3,4,则队列的输出顺序是( )

A.4321

B.1234

C.1432

D.3241

3. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为( )

A. i

B. n=i

C. n-i+1

D. 不确定

4. 栈是将插入或删除操作限定在( )处进行的线性表。

A 端点

B 栈底

C 栈顶

D 中间

5. 若一个顺序栈ST在初始化时top=-1,则判定这个栈(最多元素为m0个)为栈满的条件是( )

A. top!=0;

B. top= =m0;

C. top!=m0;

D. top= =m0-1

6. 向一个栈顶指针为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;

7. 从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行的完整操作为( )(不带空的头结点)

A. x=HS; HS= HS.next;

B. x=HS.data;

C. HS= HS.next; x=HS.data;

D. x=HS.data; HS= HS.next;

8.最大容量为n的循环队列,队尾指针是rear,队头指针是front,则队空的条件是()

A.(rear+1)MOD n=front

B.rear=front

C.rear+1=front

D.(rear-1)MOD

9.设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5、e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、e1,则栈S的容量至少应该是()

A.6

B.4

C.3

D.2

n=front

10.表达式3*2^(4+2*2-6*3)-5求值过程中,当扫描到6时,操作数栈和算符栈为()。

A 3,2,4,1,1;*^(+*-

B 3,2,4,4; *^ ( + -

C 3,2,4,2,2;*^(-

D 3,2,8; *^(-

二、填空题

1.用S表示入栈操作,X表示出栈操作,若元素入栈的顺序为1234,为了得到1342出栈顺序,相应的S和X的操作串为_______。

2. 循环队列的引入,目的是为了克服_______。

3.队列与一般的线性表的区别在于_______。

4.表达式求值是_______应用的一个典型例子。

5.循环队列用数组A[0..m-1]存放其元素值,已知其头尾指针分别是front和rear ,则当前队列的元素个数是_______。

6.解决顺序队列假溢出的一个有效的方法是将溢出条件 rear = maxsize 改为_____________。

7.同一个栈内各元素的类型_________。

8.在作入栈运算时,应先判别栈是否_____,在作出栈时应先判别栈是否_____。

9.设长度为n的链队列用单循环链表,若只设头指针,则入队和出队操作的时间复杂度分别为_____和_____;若只设尾指针,则入队和出队操作的时间复杂度分别为_____和_____。

10.在有n个元素的栈中,进栈和退栈操作的时间复杂度为_____和_____。

三、判断

()1. 栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。

()2. 栈和队列是一种非线性数据结构。

()3. 栈和队列的存储方式既可是顺序方式,也可是链接方式。

()4. 两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。

()5. 由于队列遵循先进先出原则,所以队列出队操作只需要修改头指针。四、实验题

1,请编写并实现算法,将任意一个非负的十进制整数,采用辗转相除法,转换为其他进制的数。(要求画流程图。)

2,一班有m个女生、n个男生,举办一场舞会.男女生分别编号坐在舞池两边的椅子上,每曲开始时,依次从男生和女生中各出一人配对跳舞,本曲没成功配对者坐着等待下一曲找舞伴,设计一个程序模拟舞伴配对过程(男生多于女生,女生多于男生,男生女生人数相等)。

要求舞伴的排队遵循先进先出原则。

3,(选做)、n个水手来到一个岛上,采了一堆椰子后,因为疲劳都睡着了。一段时间后,第一个水手醒来,悄悄地将椰子等分成n份,多出m个椰子,便给了旁边的猴子,然后自己藏起一份再将剩下的椰子重新合在一起,继续睡觉。不久,第二名水手醒来,同样将椰子等分成n份,恰好也多出m个,也给了猴子。然后自己也藏起一份,再将剩下的椰子重新合在一起以后每个水手都如此分了一次并都藏起一份,也恰好都把多出的m个给了猴子。第二天n个水手醒来,发现椰子少了许多,心照不宣,便把剩下的椰子分成n份,恰好又多出m个给了猴子。对于给定的整数n、m(约定0

相关文档
最新文档